Function at 0x4b29e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50f1ae
mov eax, dword fs:[0]
push eax
sub esp, 0xb0
push ebx
push esi
push edi
mov eax, dword [0x551644]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov dword [ebp - 0x14], edi
call fcn.004a0fc0
xor esi, esi
mov dword [edi + 0x4c], esi
mov dword [edi + 0x50], esi
mov dword [edi + 0x54], esi
mov dword [edi + 0x58], esi
mov dword [edi + 0x5c], esi
mov dword [edi + 0x60], esi
mov dword [edi + 0x68], esi
mov dword [edi + 0x6c], esi
mov dword [edi + 0x70], esi
mov dword [edi + 0x84], esi
mov dword [edi + 0x88], esi
mov dword [edi + 0x8c], esi
mov dword [edi + 0x90], esi
mov dword [edi + 0x94], esi
mov dword [edi + 0x98], esi
mov dword [edi], vtable.ModeCGdispScene::CCGdispBtn.0
mov edi, dword [ebp + 8]
mov dword [ebp - 4], esi
mov byte [ebp - 4], 1
cmp dword [edi*4 + 0x521e30], esi
jne 0x4b2a8d
push 0x533160
lea eax, [ebp - 0x88]
push eax
mov dword [ebp - 0x88], 1
call fcn.004f4775
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], esi
mov ecx, 0x55380c
mov byte [ebp - 4], 2
call fcn.004174f0
mov ecx, dword [0x552af0]
mov edx, dword [ecx + 0x18]
cmp edx, esi
jne 0x4b2ab5
xor ecx, ecx
jmp 0x4b2acb
mov eax, dword [ecx + 0x20]
cmp eax, esi
je 0x4b2ac1
mov eax, dword [eax + 0xc]
jmp 0x4b2ac3
xor eax, eax
mov ecx, dword [ecx + 0x1c]
imul ecx, eax
add ecx, edx
mov edx, dword [edi*4 + 0x521e30]
push edx
lea eax, [ebp - 0x74]
push eax
call fcn.0043d890
test al, al
jne 0x4b2af5
push 0x533160
lea ecx, [ebp - 0x80]
push ecx
mov dword [ebp - 0x80], 1
call fcn.004f4775
xor ebx, ebx
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 3
xor edi, edi
cmp edi, 2
jae 0x4b2be7
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], esi
mov ecx, 0x55380c
mov byte [ebp - 4], 4
call fcn.004174f0
mov ecx, dword [0x552af0]
mov edx, dword [ecx + 0x18]
cmp edx, esi
jne 0x4b2b37
xor ecx, ecx
jmp 0x4b2b4d
mov eax, dword [ecx + 0x20]
cmp eax, esi
je 0x4b2b43
mov eax, dword [eax + 0xc]
jmp 0x4b2b45
xor eax, eax
mov ecx, dword [ecx + 0x1c]
imul ecx, eax
add ecx, edx
mov edx, dword [edi*4 + 0x521e60]
push edx
lea eax, [ebp - 0x20]
push eax
call fcn.0043d890
test al, al
jne 0x4b2b7d
push 0x533160
lea ecx, [ebp - 0x9c]
push ecx
mov dword [ebp - 0x9c], 1
call fcn.004f4775
cmp ebx, dword [ebp - 0x50]
jne 0x4b2b8f
push 1
lea ecx, [ebp - 0x58]
call fcn.004752d0
mov ebx, dword [ebp - 0x54]
cmp ebx, esi
mov esi, dword [ebp - 0x18]
je 0x4b2bab
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov dword [ebx], edx
mov dword [ebx + 4], eax
mov dword [ebx + 8], esi
test esi, esi
je 0x4b2bab
inc dword [esi + 4]
add ebx, 0xc
mov dword [ebp - 0x54], ebx
mov byte [ebp - 4], 3
test esi, esi
je 0x4b2bdf
dec dword [esi + 4]
jne 0x4b2bd7
cmp byte [esi + 8], 0
je 0x4b2bcc
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 4]
push 1
mov ecx, esi
call eax
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x20], eax
inc edi
xor esi, esi
jmp 0x4b2b06
mov ecx, 0x553818
call fcn.004175a0
mov esi, dword [0x552af4]
mov ecx, dword [esi + 0x30]
sub ecx, dword [esi + 0x2c]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 3
jbe 0x4b2c46
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax + 0x24]
test ecx, ecx
jne 0x4b2c22
xor eax, eax
mov ecx, eax
jmp 0x4b2c48
mov edx, dword [eax + 0x2c]
test edx, edx
je 0x4b2c38
mov eax, dword [eax + 0x28]
mov edx, dword [edx + 0xc]
imul eax, edx
add eax, ecx
mov ecx, eax
jmp 0x4b2c48
mov eax, dword [eax + 0x28]
xor edx, edx
imul eax, edx
add eax, ecx
mov ecx, eax
jmp 0x4b2c48
xor ecx, ecx
mov edx, dword [ecx + 0x20]
sub edx, dword [ecx + 0x1c]
mov eax, 0x66666667
imul edx
mov eax, dword [ebp + 8]
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
cmp eax, esi
jge 0x4b2c8a
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0x1c]
mov ecx, dword [eax + edx*4 + 8]
sub ecx, dword [eax + edx*4 + 4]
lea eax, [eax + edx*4 + 4]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jmp 0x4b2c8d
or ecx, 0xffffffff
mov eax, 0x2aaaaaab
imul ecx
mov edi, dword [ebp - 0x14]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*2]
add edx, edx
add edx, edx
sub ecx, edx
neg ecx
sbb ecx, ecx
neg ecx
add ecx, eax
mov eax, dword [edi + 0x5c]
mov dword [ebp - 0x24], ecx
mov ecx, dword [edi + 0x58]
cmp ecx, eax
je 0x4b2ce7
mov edx, dword [ebp + 8]
push edx
push ecx
push eax
push eax
call fcn.004063e0
mov ecx, dword [ebp + 8]
add esp, 0x10
push ecx
mov esi, eax
mov eax, dword [edi + 0x5c]
lea edx, [edi + 0x64]
push edx
push eax
push esi
call fcn.00470560
add esp, 0x10
mov dword [edi + 0x5c], esi
xor edi, edi
mov ecx, dword [ebp - 0x74]
mov esi, dword [ebp - 0x6c]
mov dword [ebp - 0x34], edi
cmp edi, dword [ebp - 0x24]
jge 0x4b30b6
test ecx, ecx
jne 0x4b2d03
xor eax, eax
jmp 0x4b2d14
test esi, esi
je 0x4b2d0c
mov eax, dword [esi + 0xc]
jmp 0x4b2d0e
xor eax, eax
imul eax, dword [ebp - 0x70]
add eax, ecx
push 1
lea ecx, [ebp - 0x44]
push ecx
mov ecx, eax
call fcn.0045ce20
mov byte [ebp - 4], 5
cmp edi, 2
jae 0x4b2ebb
xor ebx, ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov ecx, 0x55380c
mov byte [ebp - 4], 6
call fcn.004174f0
mov ecx, dword [0x552af0]
mov edx, dword [ecx + 0x18]
cmp edx, ebx
jne 0x4b2d58
xor esi, esi
jmp 0x4b2d6e
mov eax, dword [ecx + 0x20]
cmp eax, ebx
je 0x4b2d64
mov eax, dword [eax + 0xc]
jmp 0x4b2d66
xor eax, eax
mov esi, dword [ecx + 0x1c]
imul esi, eax
add esi, edx
mov edx, dword [edi*4 + 0x521e58]
push 0x24
mov dword [ebp - 0x48], edx
call fcn.004f4b27
mov ecx, eax
add esp, 4
mov dword [ebp - 0x38], ecx
mov byte [ebp - 4], 7
cmp ecx, ebx
je 0x4b2d96
call fcn.00412010
jmp 0x4b2d98
xor eax, eax
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 6
call fcn.0040cd60
mov edi, dword [ebp - 0x20]
cmp edi, ebx
jne 0x4b2db3
mov ebx, dword [ebp - 0x1c]
xor eax, eax
jmp 0x4b2dc9
mov eax, dword [ebp - 0x18]
cmp eax, ebx
je 0x4b2dbf
mov eax, dword [eax + 0xc]
jmp 0x4b2dc1
xor eax, eax
mov ebx, dword [ebp - 0x1c]
imul eax, ebx
add eax, edi
mov ecx, dword [ebp - 0x48]
push ecx
push eax
mov ecx, esi
call fcn.0048eb70
test al, al
jne 0x4b2df4
push 0x533160
lea edx, [ebp - 0xa4]
push edx
mov dword [ebp - 0xa4], 1
call fcn.004f4775
mov ecx, dword [ebp - 0x18]
test edi, edi
jne 0x4b2dff
xor eax, eax
jmp 0x4b2e0f
test ecx, ecx
je 0x4b2e08
mov eax, dword [ecx + 0xc]
jmp 0x4b2e0a
xor eax, eax
imul eax, ebx
add eax, edi
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x78], eax
test edi, edi
jne 0x4b2e23
xor ecx, ecx
jmp 0x4b2e34
test ecx, ecx
je 0x4b2e2c
mov eax, dword [ecx + 0xc]
jmp 0x4b2e2e
xor eax, eax
imul eax, ebx
lea ecx, [edi + eax]
mov edx, dword [ebp - 0x44]
test edx, edx
jne 0x4b2e3f
xor eax, eax
jmp 0x4b2e53
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x4b2e4b
mov eax, dword [eax + 0xc]
jmp 0x4b2e4d
xor eax, eax
imul eax, dword [ebp - 0x40]
add eax, edx
mov edi, dword [eax + 4]
test edi, edi
je 0x4b2e88
mov esi, dword [ecx + 4]
test esi, esi
je 0x4b2e88
mov ecx, 0x5537a9
call fcn.004047e0
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x7c]
push 0
push 0
push 0
push 0
push ecx
mov ecx, dword [0x552adc]
push edx
push esi
push edi
call fcn.0040f270
cmp dword [ebp - 0x18], 0
mov byte [ebp - 4], 5
je 0x4b2ebb
mov esi, dword [ebp - 0x18]
dec dword [esi + 4]
jne 0x4b2eb3
cmp byte [esi + 8], 0
je 0x4b2ea8
mov eax, dword [esi]
mov edx, dword [eax]
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 4]
push 1
mov ecx, esi
call edx
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x24]
cmp eax, 2
jl 0x4b3016
mov esi, dword [ebp - 0x58]
dec eax
cmp dword [ebp - 0x34], eax
jge 0x4b2f72
mov edx, dword [esi + 0xc]
test edx, edx
jne 0x4b2edf
xor eax, eax
jmp 0x4b2ef5
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4b2eeb
mov ecx, dword [eax + 0xc]
jmp 0x4b2eed
xor ecx, ecx
mov eax, dword [esi + 0x10]
imul eax, ecx
add eax, edx
mov ebx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x5c], eax
mov eax, edx
test eax, eax
jne 0x4b2f08
xor ecx, ecx
jmp 0x4b2f1e
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x4b2f14
mov edx, dword [ecx + 0xc]
jmp 0x4b2f16
xor edx, edx
mov ecx, dword [esi + 0x10]
imul ecx, edx
add ecx, eax
mov edx, dword [ebp - 0x44]
test edx, edx
jne 0x4b2f29
xor eax, eax
jmp 0x4b2f3d
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x4b2f35
mov eax, dword [eax + 0xc]
jmp 0x4b2f37
xor eax, eax
imul eax, dword [ebp - 0x40]
add eax, edx
mov edi, dword [eax + 4]
test edi, edi
je 0x4b2f6f
mov esi, dword [ecx + 4]
test esi, esi
je 0x4b2f6f
mov ecx, 0x5537a9
call fcn.004047e0
mov ecx, dword [ebp - 0x5c]
push 0
push 0
push 0
push 0
push ecx
mov ecx, dword [0x552adc]
push ebx
push esi
push edi
call fcn.0040f270
mov esi, dword [ebp - 0x58]
cmp dword [ebp - 0x34], 0
je 0x4b3016
mov edx, dword [esi]
test edx, edx
jne 0x4b2f86
xor eax, eax
jmp 0x4b2f9c
mov eax, dword [esi + 8]
test eax, eax
je 0x4b2f92
mov ecx, dword [eax + 0xc]
jmp 0x4b2f94
xor ecx, ecx
mov eax, dword [esi + 4]
imul eax, ecx
add eax, edx
mov ebx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x64], eax
test edx, edx
jne 0x4b2fad
xor ecx, ecx
jmp 0x4b2fc3
mov eax, dword [esi + 8]
test eax, eax
je 0x4b2fb9
mov eax, dword [eax + 0xc]
jmp 0x4b2fbb
xor eax, eax
mov ecx, dword [esi + 4]
imul ecx, eax
add ecx, edx
mov esi, dword [ebp - 0x44]
test esi, esi
jne 0x4b2fce
xor eax, eax
jmp 0x4b2fe4
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x4b2fda
mov edx, dword [eax + 0xc]
jmp 0x4b2fdc
xor edx, edx
mov eax, dword [ebp - 0x40]
imul eax, edx
add eax, esi
mov edi, dword [eax + 4]
test edi, edi
je 0x4b3016
mov esi, dword [ecx + 4]
test esi, esi
je 0x4b3016
mov ecx, 0x5537a9
call fcn.004047e0
mov ecx, dword [ebp - 0x64]
push 0
push 0
push 0
push 0
push ecx
mov ecx, dword [0x552adc]
push ebx
push esi
push edi
call fcn.0040f270
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x3c]
xor edi, edi
mov byte [ebp - 4], 8
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x28], eax
cmp eax, edi
je 0x4b3035
inc dword [eax + 4]
lea ecx, [ebp - 0x30]
push ecx
mov ecx, dword [ebp - 0x14]
add ecx, 0x58
call fcn.004a0060
mov esi, dword [ebp - 0x28]
mov byte [ebp - 4], 5
cmp esi, edi
je 0x4b3073
dec dword [esi + 4]
jne 0x4b306d
cmp byte [esi + 8], 0
je 0x4b3062
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 4]
push 1
mov ecx, esi
call eax
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x30], edi
mov eax, dword [ebp - 0x3c]
mov byte [ebp - 4], 3
cmp eax, edi
je 0x4b30aa
dec dword [eax + 4]
mov ecx, eax
cmp dword [eax + 4], edi
jne 0x4b30a4
cmp byte [ecx + 8], 0
je 0x4b3094
mov edx, dword [ecx]
mov eax, dword [edx]
call eax
mov ecx, dword [ebp - 0x3c]
cmp ecx, edi
je 0x4b30a4
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 1
call eax
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x44], edi
mov edi, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x54]
inc edi
jmp 0x4b2ce9
cmp dword [ebp - 0x58], 0
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x78], 0
mov byte [ebp - 4], 2
je 0x4b30e8
mov edx, dword [ebp + 8]
mov edi, dword [ebp - 0x58]
push edx
lea eax, [ebp - 0x4c]
push eax
push ebx
push edi
call fcn.00470560
add esp, 0x10
push edi
call fcn.004f476a
add esp, 4
mov byte [ebp - 4], 1
test esi, esi
je 0x4b310e
dec dword [esi + 4]
jne 0x4b310e
cmp byte [esi + 8], 0
je 0x4b3103
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 4]
push 1
mov ecx, esi
call eax
mov ecx, dword [ebp + 8]
cmp dword [ecx*4 + 0x521e44], 0
je 0x4b31e9
mov ecx, 0x55380c
call fcn.004174f0
mov ecx, dword [0x552af0]
mov edx, dword [ecx + 0x18]
test edx, edx
jne 0x4b313a
xor edi, edi
jmp 0x4b3150
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x4b3146
mov eax, dword [eax + 0xc]
jmp 0x4b3148
xor eax, eax
mov edi, dword [ecx + 0x1c]
imul edi, eax
add edi, edx
mov esi, dword [ebp - 0x14]
mov ecx, dword [esi + 0x90]
mov edx, dword [ebp + 8]
mov ebx, dword [edx*4 + 0x521e44]
test ecx, ecx
jne 0x4b31a5
push 0x24
call fcn.004f4b27
mov ecx, eax
add esp, 4
mov dword [ebp - 0x38], ecx
mov byte [ebp - 4], 9
test ecx, ecx
je 0x4b3185
call fcn.00412010
jmp 0x4b3187
xor eax, eax
push eax
lea ecx, [esi + 0x90]
mov byte [ebp - 4], 1
call fcn.0040cd60
mov ecx, dword [esi + 0x90]
test ecx, ecx
jne 0x4b31a5
xor eax, eax
jmp 0x4b31c1
mov eax, dword [esi + 0x98]
test eax, eax
je 0x4b31b4
mov edx, dword [eax + 0xc]
jmp 0x4b31b6
xor edx, edx
mov eax, dword [esi + 0x94]
imul eax, edx
add eax, ecx
push ebx
push eax
mov ecx, edi
call fcn.0048eb70
test al, al
jne 0x4b31e9
push 0x533160
lea eax, [ebp - 0xb4]
push eax
mov dword [ebp - 0xb4], 1
call fcn.004f4775
mov edx, dword [vtable.CCriticalSection.0]
mov eax, dword [edx]
mov ecx, 0x5452ec
xor ebx, ebx
mov dword [ebp - 0x30], vtable.CCriticalLock.0
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], ebx
call eax
mov dword [ebp - 0x28], 1
mov esi, dword [0x552af4]
mov byte [ebp - 4], 0xa
cmp esi, ebx
jne 0x4b328d
push 0x64
call fcn.004f4b27
mov esi, eax
add esp, 4
mov dword [ebp - 0x38], esi
mov byte [ebp - 4], 0xb
cmp esi, ebx
je 0x4b3285
mov edx, dword [0x5515b0]
mov eax, dword [edx + 0xc]
mov ecx, 0x5515b0
call eax
add eax, 0x10
mov dword [esi + 0x10], eax
mov edx, dword [0x5515b0]
mov eax, dword [edx + 0xc]
mov ecx, 0x5515b0
call eax
add eax, 0x10
mov dword [esi + 0x14], eax
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x30], ebx
mov dword [esi + 0x34], ebx
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x40], ebx
mov dword [esi + 0x44], ebx
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x50], ebx
mov dword [esi + 0x54], ebx
mov dword [esi + 0x58], ebx
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x60], ebx
jmp 0x4b3287
xor esi, esi
mov dword [0x552af4], esi
mov byte [ebp - 4], 1
xor edi, edi
cmp edi, dword [ebp - 0x28]
jge 0x4b32ab
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov esi, dword [0x552af4]
inc edi
jmp 0x4b3293
mov ecx, dword [esi + 0x30]
sub ecx, dword [esi + 0x2c]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 3
jbe 0x4b32f0
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax + 0x24]
cmp ecx, ebx
je 0x4b32f0
mov edx, dword [eax + 0x2c]
cmp edx, ebx
je 0x4b32e4
mov eax, dword [eax + 0x28]
mov edx, dword [edx + 0xc]
imul eax, edx
add eax, ecx
jmp 0x4b32f2
mov eax, dword [eax + 0x28]
xor edx, edx
imul eax, edx
add eax, ecx
jmp 0x4b32f2
xor eax, eax
mov ecx, dword [ebp + 8]
mov edx, dword [eax]
mov edx, dword [edx + 0x24]
push ecx
mov ecx, eax
call edx
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x48], eax
xor esi, esi
jmp 0x4b3310
mov ecx, dword [edi + 0x5c]
sub ecx, dword [edi + 0x58]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jae 0x4b338c
mov edx, dword [edi + 0x58]
lea ecx, [esi + esi*2]
lea eax, [edx + ecx*4]
mov ecx, dword [eax]
cmp ecx, ebx
jne 0x4b333d
xor eax, eax
jmp 0x4b3353
mov edx, dword [eax + 8]
cmp edx, ebx
je 0x4b3349
mov edx, dword [edx + 0xc]
jmp 0x4b334b
xor edx, edx
mov eax, dword [eax + 4]
imul eax, edx
add eax, ecx
push 0x521e90
push 0x521e68
push eax
mov eax, dword [ebp - 0x48]
push eax
call fcn.004a42f0
add esp, 0x10
test al, al
jne 0x4b3389
push 0x533160
lea ecx, [ebp - 0xbc]
push ecx
mov dword [ebp - 0xbc], 2
call fcn.004f4775
inc esi
jmp 0x4b3310
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov edx, dword [vtable.CCriticalSection.0]
mov eax, dword [edx]
mov edi, 0x5452c8
mov ecx, edi
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x30], vtable.CCriticalLock.0
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], ebx
call eax
mov ebx, 1
mov dword [ebp - 0x28], ebx
mov eax, dword [0x552af0]
mov byte [ebp - 4], 0xd
test eax, eax
jne 0x4b33f4
push 0x1f0
call fcn.004f4b27
mov ecx, eax
add esp, 4
mov dword [ebp - 0x38], ecx
mov byte [ebp - 4], 0xe
test ecx, ecx
je 0x4b33ed
call fcn.00415650
jmp 0x4b33ef
xor eax, eax
mov dword [0x552af0], eax
mov byte [ebp - 4], 0xc
xor esi, esi
lea ebx, [ebx]
cmp esi, ebx
jge 0x4b3415
mov edx, dword [edi]
mov eax, dword [edx + 4]
mov ecx, edi
call eax
mov eax, dword [0x552af0]
inc esi
jmp 0x4b3400
mov edx, dword [eax + 0x18]
test edx, edx
jne 0x4b3420
xor esi, esi
jmp 0x4b3436
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x4b342c
mov ecx, dword [ecx + 0xc]
jmp 0x4b342e
xor ecx, ecx
mov esi, dword [eax + 0x1c]
imul esi, ecx
add esi, edx
cmp dword [ebp - 0x44], 0
jne 0x4b3474
push 0x24
call fcn.004f4b27
mov ecx, eax
add esp, 4
mov dword [ebp - 0x38], ecx
xor ebx, ebx
mov byte [ebp - 4], 0xf
cmp ecx, ebx
je 0x4b345c
call fcn.00412010
jmp 0x4b345e
xor eax, eax
push eax
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0xc
call fcn.0040cd60
cmp dword [ebp - 0x44], ebx
jne 0x4b3476
xor eax, eax
jmp 0x4b348b
xor ebx, ebx
mov eax, dword [ebp - 0x3c]
cmp eax, ebx
je 0x4b3482
mov eax, dword [eax + 0xc]
jmp 0x4b3484
xor eax, eax
imul eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x44]
push 0x51f58c
push eax
mov ecx, esi
call fcn.0048eb70
test al, al
jne 0x4b34b7
push 0x533160
lea ecx, [ebp - 0xb8]
push ecx
mov dword [ebp - 0xb8], 1
call fcn.004f4775
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov edx, dword [vtable.CCriticalSection.0]
mov eax, dword [edx]
mov edi, 0x5452c8
mov ecx, edi
mov byte [ebp - 4], 0x10
mov dword [ebp - 0x30], vtable.CCriticalLock.0
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], ebx
call eax
mov ebx, 1
mov dword [ebp - 0x28], ebx
mov eax, dword [0x552af0]
mov byte [ebp - 4], 0x11
test eax, eax
jne 0x4b351f
push 0x1f0
call fcn.004f4b27
mov ecx, eax
add esp, 4
mov dword [ebp - 0x38], ecx
mov byte [ebp - 4], 0x12
test ecx, ecx
je 0x4b3518
call fcn.00415650
jmp 0x4b351a
xor eax, eax
mov dword [0x552af0], eax
mov byte [ebp - 4], 0x10
xor esi, esi
cmp esi, ebx
jge 0x4b353a
mov edx, dword [edi]
mov eax, dword [edx + 4]
mov ecx, edi
call eax
mov eax, dword [0x552af0]
inc esi
jmp 0x4b3525
mov edx, dword [eax + 0x18]
test edx, edx
jne 0x4b3545
xor esi, esi
jmp 0x4b355b
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x4b3551
mov ecx, dword [ecx + 0xc]
jmp 0x4b3553
xor ecx, ecx
mov esi, dword [eax + 0x1c]
imul esi, ecx
add esi, edx
cmp dword [ebp - 0x20], 0
jne 0x4b3599
push 0x24
call fcn.004f4b27
mov ecx, eax
add esp, 4
mov dword [ebp - 0x38], ecx
xor ebx, ebx
mov byte [ebp - 4], 0x13
cmp ecx, ebx
je 0x4b3581
call fcn.00412010
jmp 0x4b3583
xor eax, eax
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x10
call fcn.0040cd60
cmp dword [ebp - 0x20], ebx
jne 0x4b3599
xor eax, eax
jmp 0x4b35b0
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x4b35a5
mov eax, dword [eax + 0xc]
jmp 0x4b35a7
xor eax, eax
imul eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x20]
xor ebx, ebx
push 0x51f5a4
push eax
mov ecx, esi
call fcn.0048eb70
test al, al
jne 0x4b35dc
push 0x533160
lea ecx, [ebp - 0xac]
push ecx
mov dword [ebp - 0xac], 1
call fcn.004f4775
mov edx, dword [vtable.CCriticalSection.0]
mov eax, dword [edx]
mov ecx, 0x5452ec
mov dword [ebp - 0x30], vtable.CCriticalLock.0
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], ebx
call eax
mov dword [ebp - 0x28], 1
mov esi, dword [0x552af4]
mov byte [ebp - 4], 0x14
cmp esi, ebx
jne 0x4b367e
push 0x64
call fcn.004f4b27
mov esi, eax
add esp, 4
mov dword [ebp - 0x38], esi
mov byte [ebp - 4], 0x15
cmp esi, ebx
je 0x4b3676
mov edx, dword [0x5515b0]
mov eax, dword [edx + 0xc]
mov ecx, 0x5515b0
call eax
add eax, 0x10
mov dword [esi + 0x10], eax
mov edx, dword [0x5515b0]
mov eax, dword [edx + 0xc]
mov ecx, 0x5515b0
call eax
add eax, 0x10
mov dword [esi + 0x14], eax
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x30], ebx
mov dword [esi + 0x34], ebx
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x40], ebx
mov dword [esi + 0x44], ebx
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x50], ebx
mov dword [esi + 0x54], ebx
mov dword [esi + 0x58], ebx
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x60], ebx
jmp 0x4b3678
xor esi, esi
mov dword [0x552af4], esi
mov byte [ebp - 4], 0x10
xor edi, edi
cmp edi, dword [ebp - 0x28]
jge 0x4b369c
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov esi, dword [0x552af4]
inc edi
jmp 0x4b3684
mov ecx, dword [esi + 0x30]
sub ecx, dword [esi + 0x2c]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 3
jbe 0x4b36eb
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax + 0x24]
cmp ecx, ebx
jne 0x4b36c7
xor eax, eax
mov ecx, eax
jmp 0x4b36ed
mov edx, dword [eax + 0x2c]
cmp edx, ebx
je 0x4b36dd
mov eax, dword [eax + 0x28]
mov edx, dword [edx + 0xc]
imul eax, edx
add eax, ecx
mov ecx, eax
jmp 0x4b36ed
mov eax, dword [eax + 0x28]
xor edx, edx
imul eax, edx
add eax, ecx
mov ecx, eax
jmp 0x4b36ed
xor ecx, ecx
mov edx, dword [ecx + 0x20]
sub edx, dword [ecx + 0x1c]
mov eax, 0x66666667
imul edx
mov eax, dword [ebp + 8]
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
cmp eax, esi
jge 0x4b372f
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0x1c]
mov ecx, dword [eax + edx*4 + 8]
sub ecx, dword [eax + edx*4 + 4]
lea eax, [eax + edx*4 + 4]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x4b3732
or eax, 0xffffffff
mov ebx, dword [ebp - 0x14]
xor edi, edi
mov dword [ebp - 0x48], eax
mov dword [ebx + 0x44], edi
mov dword [ebp - 0x34], edi
lea esi, [edi + 1]
cmp dword [ebp - 0x34], eax
jge 0x4b3d7b
mov edx, dword [vtable.CCriticalSection.0]
mov eax, dword [edx]
mov ecx, 0x5452ec
mov dword [ebp - 0x30], vtable.CCriticalLock.0
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], edi
call eax
mov dword [ebp - 0x28], esi
mov esi, dword [0x552af4]
mov byte [ebp - 4], 0x16
cmp esi, edi
jne 0x4b37ea
push 0x64
call fcn.004f4b27
mov esi, eax
add esp, 4
mov dword [ebp - 0x5c], esi
mov byte [ebp - 4], 0x17
cmp esi, edi
je 0x4b37e2
mov edx, dword [0x5515b0]
mov eax, dword [edx + 0xc]
mov ecx, 0x5515b0
call eax
add eax, 0x10
mov dword [esi + 0x10], eax
mov edx, dword [0x5515b0]
mov eax, dword [edx + 0xc]
mov ecx, 0x5515b0
call eax
add eax, 0x10
mov dword [esi + 0x14], eax
mov dword [esi + 0x2c], edi
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], edi
mov dword [esi + 0x3c], edi
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], edi
mov dword [esi + 0x4c], edi
mov dword [esi + 0x50], edi
mov dword [esi + 0x54], edi
mov dword [esi + 0x58], edi
mov dword [esi + 0x5c], edi
mov dword [esi + 0x60], edi
jmp 0x4b37e4
xor esi, esi
mov dword [0x552af4], esi
mov byte [ebp - 4], 0x10
mov dword [ebp - 0x30], vtable.CCriticalLock.0
xor edi, edi
cmp edi, dword [ebp - 0x28]
jge 0x4b380f
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov esi, dword [0x552af4]
inc edi
jmp 0x4b37f7
mov ecx, dword [esi + 0x30]
sub ecx, dword [esi + 0x2c]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 3
jbe 0x4b3854
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x4b3854
mov edx, dword [eax + 0x2c]
test edx, edx
je 0x4b3848
mov eax, dword [eax + 0x28]
mov edx, dword [edx + 0xc]
imul eax, edx
add eax, ecx
jmp 0x4b3856
mov eax, dword [eax + 0x28]
xor edx, edx
imul eax, edx
add eax, ecx
jmp 0x4b3856
xor eax, eax
lea edx, [ebp - 0x78]
push edx
mov edx, dword [ebp - 0x34]
lea ecx, [ebp - 0x38]
push ecx
mov ecx, dword [ebp + 8]
push edx
push ecx
mov ecx, eax
call fcn.0049d050
test al, al
je 0x4b3d7b
mov ecx, ebx
call fcn.004a0e80
mov ecx, 0x553818
mov dword [ebp - 0x24], eax
call fcn.004175a0
mov esi, dword [0x552af4]
mov ecx, dword [esi + 0x30]
sub ecx, dword [esi + 0x2c]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 3
jbe 0x4b38d4
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x4b38d4
mov edx, dword [eax + 0x2c]
test edx, edx
je 0x4b38c8
mov eax, dword [eax + 0x28]
mov edx, dword [edx + 0xc]
imul eax, edx
add eax, ecx
jmp 0x4b38d6
mov eax, dword [eax + 0x28]
xor edx, edx
imul eax, edx
add eax, ecx
jmp 0x4b38d6
xor eax, eax
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + 0x44]
mov edx, dword [eax]
mov edx, dword [edx + 0x1c]
push ecx
mov ecx, dword [ebp + 8]
push ecx
mov ecx, eax
call edx
mov esi, dword [ebp - 0x34]
mov ebx, eax
mov eax, 0x2aaaaaab
imul esi
sar edx, 1
mov edi, edx
shr edi, 0x1f
add edi, edx
lea eax, [edi + edi*2]
add eax, eax
add eax, eax
sub esi, eax
test ebx, ebx
je 0x4b3983
mov ecx, 0x55380c
call fcn.004174f0
mov ecx, dword [0x552af0]
mov edx, dword [ecx + 0x18]
test edx, edx
jne 0x4b3927
xor ecx, ecx
jmp 0x4b393d
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x4b3933
mov eax, dword [eax + 0xc]
jmp 0x4b3935
xor eax, eax
mov ecx, dword [ecx + 0x1c]
imul ecx, eax
add ecx, edx
mov edx, dword [ebp - 0x24]
push 0
push ebx
push edx
call fcn.0048b850
test al, al
jne 0x4b3968
push 0x533160
lea eax, [ebp - 0xb0]
push eax
mov dword [ebp - 0xb0], 3
call fcn.004f4775
mov eax, dword [esi*8 + 0x521f2c]
mov ecx, dword [esi*8 + 0x521f28]
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x24], ecx
mov dword [edx + 0x28], eax
mov byte [edx + 0x2c], 0
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x5c]
sub ecx, dword [eax + 0x58]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp edi, ecx
jae 0x4b3d63
test ebx, ebx
jne 0x4b3a47
mov ecx, dword [ebp - 0x44]
test ecx, ecx
jne 0x4b39b7
xor edx, edx
jmp 0x4b39cc
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x4b39c3
mov eax, dword [eax + 0xc]
jmp 0x4b39c5
xor eax, eax
imul eax, dword [ebp - 0x40]
lea edx, [ecx + eax]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + 0x58]
lea eax, [edi + edi*2]
lea eax, [ecx + eax*4]
mov ecx, dword [eax]
test ecx, ecx
jne 0x4b39e2
xor eax, eax
jmp 0x4b39f8
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x4b39ee
mov ebx, dword [ebx + 0xc]
jmp 0x4b39f0
xor ebx, ebx
mov eax, dword [eax + 4]
imul eax, ebx
add eax, ecx
mov ecx, dword [esi*8 + 0x521f2c]
mov ebx, dword [eax + 4]
mov dword [ebp - 0x24], ecx
mov ecx, dword [esi*8 + 0x521f28]
mov dword [ebp - 0x64], ecx
test ebx, ebx
je 0x4b3a47
mov eax, dword [edx + 4]
mov dword [ebp - 0x5c], eax
test eax, eax
je 0x4b3a47
mov ecx, 0x5537a9
call fcn.004047e0
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x5c]
push 0
push 0
push 0
push 0
push edx
push eax
push ecx
mov ecx, dword [0x552adc]
push ebx
call fcn.0040f270
mov ecx, dword [ebp - 0x20]
test ecx, ecx
jne 0x4b3a52
xor ebx, ebx
jmp 0x4b3a67
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x4b3a5e
mov eax, dword [eax + 0xc]
jmp 0x4b3a60
xor eax, eax
imul eax, dword [ebp - 0x1c]
lea ebx, [ecx + eax]
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x58]
lea edi, [edi + edi*2]
add edi, edi
add edi, edi
mov ecx, dword [eax + edi]
add eax, edi
mov dword [ebp - 0x24], edi
test ecx, ecx
jne 0x4b3a84
xor eax, eax
jmp 0x4b3a9a
mov edi, dword [eax + 8]
test edi, edi
je 0x4b3a90
mov edi, dword [edi + 0xc]
jmp 0x4b3a92
xor edi, edi
mov eax, dword [eax + 4]
imul eax, edi
add eax, ecx
mov ecx, dword [esi*8 + 0x521f8c]
mov edi, dword [eax + 4]
mov dword [ebp - 0x5c], ecx
mov ecx, dword [esi*8 + 0x521f88]
mov dword [ebp - 0x64], ecx
test edi, edi
je 0x4b3ae6
mov ebx, dword [ebx + 4]
test ebx, ebx
je 0x4b3ae6
mov ecx, 0x5537a9
call fcn.004047e0
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x64]
mov ecx, dword [0x552adc]
push 0
push 0
push 0
push 0
push edx
push eax
push ebx
push edi
call fcn.0040f270
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x78]
mov eax, dword [edx + 0x58]
mov edi, dword [ebp - 0x24]
mov ecx, dword [eax + edi]
cmp ebx, 0xa
jge 0x4b3b59
test ecx, ecx
jne 0x4b3aff
xor eax, eax
jmp 0x4b3b17
mov edx, dword [eax + edi + 8]
test edx, edx
je 0x4b3b0c
mov edx, dword [edx + 0xc]
jmp 0x4b3b0e
xor edx, edx
mov eax, dword [eax + edi + 4]
imul eax, edx
add eax, ecx
mov ecx, dword [esi*8 + 0x521fe8]
push ecx
lea edx, [esi*8 + 0x522108]
push edx
push 0x521ef8
push eax
push ebx
call fcn.004a4630
add esp, 0x14
test al, al
jne 0x4b3c21
push 0x533160
lea eax, [ebp - 0x90]
push eax
mov dword [ebp - 0x90], 4
call fcn.004f4775
cmp ebx, 0x64
jge 0x4b3bc0
test ecx, ecx
jne 0x4b3b66
xor eax, eax
jmp 0x4b3b7e
mov edx, dword [eax + edi + 8]
test edx, edx
je 0x4b3b73
mov edx, dword [edx + 0xc]
jmp 0x4b3b75
xor edx, edx
mov eax, dword [eax + edi + 4]
imul eax, edx
add eax, ecx
mov ecx, dword [esi*8 + 0x521fe8]
push ecx
mov edx, esi
shl edx, 4
add edx, 0x522048
push edx
push 0x521ef8
push eax
push ebx
call fcn.004a4630
add esp, 0x14
test al, al
jne 0x4b3c21
push 0x533160
lea eax, [ebp - 0xa8]
push eax
mov dword [ebp - 0xa8], 5
call fcn.004f4775
test ecx, ecx
jne 0x4b3bc8
xor eax, eax
jmp 0x4b3be0
mov edx, dword [eax + edi + 8]
test edx, edx
je 0x4b3bd5
mov edx, dword [edx + 0xc]
jmp 0x4b3bd7
xor edx, edx
mov eax, dword [eax + edi + 4]
imul eax, edx
add eax, ecx
mov ecx, dword [esi*8 + 0x521fe8]
push ecx
lea edx, [esi + esi*2]
lea ecx, [edx*8 + 0x522168]
push ecx
push 0x521ef8
push eax
push ebx
call fcn.004a4630
add esp, 0x14
test al, al
jne 0x4b3c21
push 0x533160
lea edx, [ebp - 0x98]
push edx
mov dword [ebp - 0x98], 9
call fcn.004f4775
mov ebx, dword [ebp - 0x38]
cmp ebx, 0xa
jge 0x4b3c94
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x58]
mov ecx, dword [eax + edi]
test ecx, ecx
jne 0x4b3c3a
xor eax, eax
jmp 0x4b3c52
mov edx, dword [eax + edi + 8]
test edx, edx
je 0x4b3c47
mov edx, dword [edx + 0xc]
jmp 0x4b3c49
xor edx, edx
mov eax, dword [eax + edi + 4]
imul eax, edx
add eax, ecx
mov ecx, dword [esi*8 + 0x521fec]
push ecx
lea edx, [esi*8 + 0x52210c]
push edx
push 0x521ef8
push eax
push ebx
call fcn.004a4630
add esp, 0x14
test al, al
jne 0x4b3d63
push 0x533160
lea eax, [ebp - 0xa0]
push eax
mov dword [ebp - 0xa0], 6
call fcn.004f4775
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x58]
mov ecx, dword [eax + edi]
cmp ebx, 0x64
jge 0x4b3d02
test ecx, ecx
jne 0x4b3caa
xor eax, eax
jmp 0x4b3cc2
mov edx, dword [eax + edi + 8]
test edx, edx
je 0x4b3cb7
mov edx, dword [edx + 0xc]
jmp 0x4b3cb9
xor edx, edx
mov eax, dword [eax + edi + 4]
imul eax, edx
add eax, ecx
mov edx, dword [esi*8 + 0x521fec]
push edx
shl esi, 4
add esi, 0x522050
push esi
push 0x521ef8
push eax
push ebx
call fcn.004a4630
add esp, 0x14
test al, al
jne 0x4b3d63
push 0x533160
lea eax, [ebp - 0x84]
push eax
mov dword [ebp - 0x84], 7
call fcn.004f4775
test ecx, ecx
jne 0x4b3d0a
xor eax, eax
jmp 0x4b3d22
mov edx, dword [eax + edi + 8]
test edx, edx
je 0x4b3d17
mov edx, dword [edx + 0xc]
jmp 0x4b3d19
xor edx, edx
mov eax, dword [eax + edi + 4]
imul eax, edx
add eax, ecx
mov edx, dword [esi*8 + 0x521fec]
push edx
lea ecx, [esi + esi*2]
lea edx, [ecx*8 + 0x522174]
push edx
push 0x521ef8
push eax
push ebx
call fcn.004a4630
add esp, 0x14
test al, al
jne 0x4b3d63
push 0x533160
lea eax, [ebp - 0x8c]
push eax
mov dword [ebp - 0x8c], 0xa
call fcn.004f4775
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x48]
mov esi, 1
add dword [ebp - 0x34], esi
add dword [ebx + 0x44], esi
xor edi, edi
jmp 0x4b3743
mov esi, dword [ebp - 0x18]
mov byte [ebp - 4], 0xc
test esi, esi
je 0x4b3da4
dec dword [esi + 4]
jne 0x4b3da4
cmp byte [esi + 8], 0
je 0x4b3d99
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 4]
push 1
mov ecx, esi
call eax
mov esi, dword [ebp - 0x3c]
mov byte [ebp - 4], 1
test esi, esi
je 0x4b3dcd
dec dword [esi + 4]
jne 0x4b3dcd
cmp byte [esi + 8], 0
je 0x4b3dc2
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 4]
push 1
mov ecx, esi
call eax
mov ecx, dword [ebx + 0x5c]
sub ecx, dword [ebx + 0x58]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 2
jb 0x4b3f3c
xor ecx, ecx
mov eax, 2
mov edx, 0x74
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.004f4670
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 0x18
test eax, eax
je 0x4b3e42
push 0x459d50
push fcn.0047d4c0
push 2
lea esi, [eax + 4]
push 0x74
push esi
mov dword [eax], 2
call fcn.004f6091
mov eax, esi
jmp 0x4b3e44
xor eax, eax
mov ecx, dword [ebp - 0x14]
push 0
push 2
add ecx, 0x68
push eax
mov byte [ebp - 4], 1
call fcn.0049b160
xor ebx, ebx
lea ebx, [ebx]
mov edi, dword [ebp - 0x14]
mov eax, dword [edi + 0x70]
test eax, eax
je 0x4b3e6d
mov eax, dword [eax + 0x10]
cmp ebx, eax
jge 0x4b3f3c
mov ecx, dword [edi + 0x68]
test ecx, ecx
jne 0x4b3e80
xor esi, esi
jmp 0x4b3e98
mov eax, dword [edi + 0x70]
test eax, eax
je 0x4b3e8c
mov eax, dword [eax + 0xc]
jmp 0x4b3e8e
xor eax, eax
mov esi, dword [edi + 0x6c]
add esi, ebx
imul esi, eax
add esi, ecx
mov ecx, 0x55380c
call fcn.004174f0
mov ecx, dword [0x552af0]
mov edx, dword [ecx + 0x18]
test edx, edx
jne 0x4b3eb3
xor ecx, ecx
jmp 0x4b3ec9
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x4b3ebf
mov eax, dword [eax + 0xc]
jmp 0x4b3ec1
xor eax, eax
mov ecx, dword [ecx + 0x1c]
imul ecx, eax
add ecx, edx
lea edx, [ebx + ebx*4]
push 0
lea eax, [edx*8 + 0x521ea8]
push eax
push esi
call fcn.0048b850
test al, al
jne 0x4b3efb
push 0x533160
lea ecx, [ebp - 0x94]
push ecx
mov dword [ebp - 0x94], 8
call fcn.004f4775
mov edx, dword [edi + 0x68]
test edx, edx
jne 0x4b3f06
xor eax, eax
jmp 0x4b3f1e
mov eax, dword [edi + 0x70]
test eax, eax
je 0x4b3f12
mov ecx, dword [eax + 0xc]
jmp 0x4b3f14
xor ecx, ecx
mov eax, dword [edi + 0x6c]
add eax, ebx
imul eax, ecx
add eax, edx
xor ecx, ecx
xor edx, edx
mov dword [eax + 0xc], ecx
xor esi, esi
xor edi, edi
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], esi
mov byte [eax + 8], 1
mov dword [eax + 0x18], edi
inc ebx
jmp 0x4b3e60
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov ecx, 0x55380c
mov dword [esi + 0x7c], 0xc
mov dword [esi + 0x80], edx
call fcn.004174f0
mov ecx, dword [0x552af0]
mov edx, dword [ecx + 0x30]
test edx, edx
jne 0x4b3f6a
xor ecx, ecx
jmp 0x4b3f80
mov eax, dword [ecx + 0x38]
test eax, eax
je 0x4b3f76
mov eax, dword [eax + 0xc]
jmp 0x4b3f78
xor eax, eax
mov ecx, dword [ecx + 0x34]
imul ecx, eax
add ecx, edx
call fcn.0046ebc0
push eax
lea ecx, [esi + 0x84]
call fcn.00404fd0
mov ecx, 0x55380c
mov dword [esi + 0x48], 0
call fcn.004174f0
mov ecx, dword [0x552af0]
mov edx, dword [ecx + 0x30]
test edx, edx
jne 0x4b3fb3
xor ecx, ecx
jmp 0x4b3fc9
mov eax, dword [ecx + 0x38]
test eax, eax
je 0x4b3fbf
mov eax, dword [eax + 0xc]
jmp 0x4b3fc1
xor eax, eax
mov ecx, dword [ecx + 0x34]
imul ecx, eax
add ecx, edx
call fcn.0046eb80
push eax
lea ecx, [esi + 0x4c]
call fcn.00404fd0
mov dword [esi + 0x24], 0x54ed78
jmp 0x4b3ff8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4