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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50f58b
mov eax, dword fs:[0]
push eax
sub esp, 0x94
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.ModeReplayScene::CModeReplayBtn.0
mov edi, dword [ebp + 8]
mov ebx, 1
mov dword [ebp - 4], esi
mov byte [ebp - 4], bl
cmp dword [edi*4 + 0x54efb8], esi
jne 0x4b88f7
push 0x533160
lea eax, [ebp - 0x74]
push eax
mov dword [ebp - 0x74], ebx
call fcn.004f4775
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], 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 0x4b891f
xor ecx, ecx
jmp 0x4b8935
mov eax, dword [ecx + 0x20]
cmp eax, esi
je 0x4b892b
mov eax, dword [eax + 0xc]
jmp 0x4b892d
xor eax, eax
mov ecx, dword [ecx + 0x1c]
imul ecx, eax
add ecx, edx
mov edx, dword [edi*4 + 0x54efb8]
push edx
lea eax, [ebp - 0x54]
push eax
call fcn.0043d890
test al, al
jne 0x4b895b
push 0x533160
lea ecx, [ebp - 0x70]
push ecx
mov dword [ebp - 0x70], ebx
call fcn.004f4775
xor edi, edi
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], esi
mov byte [ebp - 4], 3
xor ebx, ebx
lea esp, [esp]
cmp ebx, 2
jae 0x4b8a4b
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 0x4b89a1
xor ecx, ecx
jmp 0x4b89b7
mov eax, dword [ecx + 0x20]
cmp eax, esi
je 0x4b89ad
mov eax, dword [eax + 0xc]
jmp 0x4b89af
xor eax, eax
mov ecx, dword [ecx + 0x1c]
imul ecx, eax
add ecx, edx
mov edx, dword [ebx*4 + 0x5222a4]
push edx
lea eax, [ebp - 0x20]
push eax
call fcn.0043d890
test al, al
jne 0x4b89e1
push 0x533160
lea ecx, [ebp - 0x78]
push ecx
mov dword [ebp - 0x78], 1
call fcn.004f4775
cmp edi, dword [ebp - 0x5c]
jne 0x4b89f3
push 1
lea ecx, [ebp - 0x64]
call fcn.004752d0
mov edi, dword [ebp - 0x60]
cmp edi, esi
mov esi, dword [ebp - 0x18]
je 0x4b8a0f
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov dword [edi], edx
mov dword [edi + 4], eax
mov dword [edi + 8], esi
test esi, esi
je 0x4b8a0f
inc dword [esi + 4]
add edi, 0xc
mov dword [ebp - 0x60], edi
mov byte [ebp - 4], 3
test esi, esi
je 0x4b8a43
dec dword [esi + 4]
jne 0x4b8a3b
cmp byte [esi + 8], 0
je 0x4b8a30
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 ebx
xor esi, esi
jmp 0x4b8970
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, 4
jbe 0x4b8aa0
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax + 0x30]
test ecx, ecx
je 0x4b8aa0
mov edx, dword [eax + 0x38]
test edx, edx
je 0x4b8a94
mov eax, dword [eax + 0x34]
mov edx, dword [edx + 0xc]
imul eax, edx
add eax, ecx
jmp 0x4b8aa2
mov eax, dword [eax + 0x34]
xor edx, edx
imul eax, edx
add eax, ecx
jmp 0x4b8aa2
xor eax, eax
mov edx, dword [ebp + 8]
push edx
mov ecx, eax
call fcn.0049d260
mov ecx, eax
mov eax, 0x2aaaaaab
imul ecx
mov ebx, 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 [ebx + 0x5c]
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebx + 0x58]
cmp ecx, eax
je 0x4b8b09
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 [ebx + 0x5c]
lea edx, [ebx + 0x64]
push edx
push eax
push esi
call fcn.00470560
add esp, 0x10
mov dword [ebx + 0x5c], esi
xor ebx, ebx
mov dword [ebp - 0x24], ebx
mov edx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x4c]
cmp ebx, dword [ebp - 0x38]
jge 0x4b8ef7
test edx, edx
jne 0x4b8b25
xor ecx, ecx
jmp 0x4b8b38
test esi, esi
je 0x4b8b2e
mov eax, dword [esi + 0xc]
jmp 0x4b8b30
xor eax, eax
mov ecx, dword [ebp - 0x50]
imul ecx, eax
add ecx, edx
push 1
lea eax, [ebp - 0x48]
push eax
call fcn.0045ce20
mov byte [ebp - 4], 5
cmp ebx, 2
jae 0x4b8ce8
xor esi, esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], esi
mov ecx, 0x55380c
mov byte [ebp - 4], 6
call fcn.004174f0
mov ecx, dword [0x552af0]
mov edx, dword [ecx + 0x18]
cmp edx, esi
jne 0x4b8b7a
xor edi, edi
jmp 0x4b8b90
mov eax, dword [ecx + 0x20]
cmp eax, esi
je 0x4b8b86
mov eax, dword [eax + 0xc]
jmp 0x4b8b88
xor eax, eax
mov edi, dword [ecx + 0x1c]
imul edi, eax
add edi, edx
mov ecx, dword [ebx*4 + 0x52229c]
push 0x24
mov dword [ebp - 0x3c], ecx
call fcn.004f4b27
mov ecx, eax
add esp, 4
mov dword [ebp - 0x34], ecx
mov byte [ebp - 4], 7
test ecx, ecx
je 0x4b8bb8
call fcn.00412010
jmp 0x4b8bba
xor eax, eax
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 6
call fcn.0040cd60
mov ebx, dword [ebp - 0x20]
test ebx, ebx
jne 0x4b8bd5
mov esi, dword [ebp - 0x1c]
xor eax, eax
jmp 0x4b8bed
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x4b8be1
mov ecx, dword [eax + 0xc]
jmp 0x4b8be3
xor ecx, ecx
mov esi, dword [ebp - 0x1c]
mov eax, esi
imul eax, ecx
add eax, ebx
mov edx, dword [ebp - 0x3c]
push edx
push eax
mov ecx, edi
call fcn.0048eb70
test al, al
jne 0x4b8c12
push 0x533160
lea eax, [ebp - 0x7c]
push eax
mov dword [ebp - 0x7c], 1
call fcn.004f4775
mov edx, dword [ebp - 0x18]
test ebx, ebx
jne 0x4b8c1d
xor eax, eax
jmp 0x4b8c2f
test edx, edx
je 0x4b8c26
mov ecx, dword [edx + 0xc]
jmp 0x4b8c28
xor ecx, ecx
mov eax, esi
imul eax, ecx
add eax, ebx
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x88], eax
test ebx, ebx
jne 0x4b8c49
xor esi, esi
jmp 0x4b8c59
test edx, edx
je 0x4b8c52
mov eax, dword [edx + 0xc]
jmp 0x4b8c54
xor eax, eax
imul esi, eax
add esi, ebx
mov edx, dword [ebp - 0x48]
test edx, edx
jne 0x4b8c64
xor eax, eax
jmp 0x4b8c7a
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x4b8c70
mov ecx, dword [eax + 0xc]
jmp 0x4b8c72
xor ecx, ecx
mov eax, dword [ebp - 0x44]
imul eax, ecx
add eax, edx
mov edi, dword [eax + 4]
test edi, edi
je 0x4b8cb5
mov esi, dword [esi + 4]
test esi, esi
je 0x4b8cb5
mov ecx, 0x5537a9
call fcn.004047e0
mov ecx, dword [ebp - 0x88]
mov edx, dword [ebp - 0x8c]
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 0x4b8ce8
mov esi, dword [ebp - 0x18]
dec dword [esi + 4]
jne 0x4b8ce0
cmp byte [esi + 8], 0
je 0x4b8cd5
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 - 0x38]
cmp eax, 2
jl 0x4b8e55
mov esi, dword [ebp - 0x64]
dec eax
cmp dword [ebp - 0x24], eax
jge 0x4b8dab
mov edx, dword [esi + 0xc]
test edx, edx
jne 0x4b8d0c
xor eax, eax
jmp 0x4b8d22
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4b8d18
mov ecx, dword [eax + 0xc]
jmp 0x4b8d1a
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 esi, dword [ebp - 0x64]
mov dword [ebp - 0x9c], eax
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x4b8d3c
xor ecx, ecx
jmp 0x4b8d52
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x4b8d48
mov edx, dword [ecx + 0xc]
jmp 0x4b8d4a
xor edx, edx
mov ecx, dword [esi + 0x10]
imul ecx, edx
add ecx, eax
mov esi, dword [ebp - 0x48]
test esi, esi
jne 0x4b8d5d
xor eax, eax
jmp 0x4b8d73
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x4b8d69
mov edx, dword [eax + 0xc]
jmp 0x4b8d6b
xor edx, edx
mov eax, dword [ebp - 0x44]
imul eax, edx
add eax, esi
mov edi, dword [eax + 4]
test edi, edi
je 0x4b8da8
mov esi, dword [ecx + 4]
test esi, esi
je 0x4b8da8
mov ecx, 0x5537a9
call fcn.004047e0
mov ecx, dword [ebp - 0x9c]
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 - 0x64]
cmp dword [ebp - 0x24], 0
je 0x4b8e55
mov edx, dword [esi]
test edx, edx
jne 0x4b8dbf
xor eax, eax
jmp 0x4b8dd5
mov eax, dword [esi + 8]
test eax, eax
je 0x4b8dcb
mov ecx, dword [eax + 0xc]
jmp 0x4b8dcd
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 - 0x94], eax
test edx, edx
jne 0x4b8de9
xor ecx, ecx
jmp 0x4b8dff
mov eax, dword [esi + 8]
test eax, eax
je 0x4b8df5
mov eax, dword [eax + 0xc]
jmp 0x4b8df7
xor eax, eax
mov ecx, dword [esi + 4]
imul ecx, eax
add ecx, edx
mov esi, dword [ebp - 0x48]
test esi, esi
jne 0x4b8e0a
xor eax, eax
jmp 0x4b8e20
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x4b8e16
mov edx, dword [eax + 0xc]
jmp 0x4b8e18
xor edx, edx
mov eax, dword [ebp - 0x44]
imul eax, edx
add eax, esi
mov edi, dword [eax + 4]
test edi, edi
je 0x4b8e55
mov esi, dword [ecx + 4]
test esi, esi
je 0x4b8e55
mov ecx, 0x5537a9
call fcn.004047e0
mov ecx, dword [ebp - 0x94]
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 - 0x44]
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x40]
mov byte [ebp - 4], 8
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x28], eax
test eax, eax
je 0x4b8e72
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]
xor edi, edi
mov byte [ebp - 4], 5
cmp esi, edi
je 0x4b8eb2
dec dword [esi + 4]
jne 0x4b8eac
cmp byte [esi + 8], 0
je 0x4b8ea1
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 - 0x40]
mov byte [ebp - 4], 3
cmp eax, edi
je 0x4b8ee9
dec dword [eax + 4]
mov ecx, eax
cmp dword [eax + 4], edi
jne 0x4b8ee3
cmp byte [ecx + 8], 0
je 0x4b8ed3
mov edx, dword [ecx]
mov eax, dword [edx]
call eax
mov ecx, dword [ebp - 0x40]
cmp ecx, edi
je 0x4b8ee3
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 1
call eax
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x48], edi
inc dword [ebp - 0x24]
mov edi, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x24]
jmp 0x4b8b0e
cmp dword [ebp - 0x64], 0
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x78], 0
mov byte [ebp - 4], 2
je 0x4b8f29
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x58]
push eax
push edi
mov edi, dword [ebp - 0x64]
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 0x4b8f4f
dec dword [esi + 4]
jne 0x4b8f4f
cmp byte [esi + 8], 0
je 0x4b8f44
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 + 0x522288], 0
je 0x4b902a
mov ecx, 0x55380c
call fcn.004174f0
mov ecx, dword [0x552af0]
mov edx, dword [ecx + 0x18]
test edx, edx
jne 0x4b8f7b
xor edi, edi
jmp 0x4b8f91
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x4b8f87
mov eax, dword [eax + 0xc]
jmp 0x4b8f89
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 + 0x522288]
test ecx, ecx
jne 0x4b8fe6
push 0x24
call fcn.004f4b27
mov ecx, eax
add esp, 4
mov dword [ebp - 0x34], ecx
mov byte [ebp - 4], 9
test ecx, ecx
je 0x4b8fc6
call fcn.00412010
jmp 0x4b8fc8
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 0x4b8fe6
xor eax, eax
jmp 0x4b9002
mov eax, dword [esi + 0x98]
test eax, eax
je 0x4b8ff5
mov edx, dword [eax + 0xc]
jmp 0x4b8ff7
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 0x4b902a
push 0x533160
lea eax, [ebp - 0x84]
push eax
mov dword [ebp - 0x84], 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], 0
call eax
mov dword [ebp - 0x28], 1
mov esi, dword [0x552af4]
xor ebx, ebx
mov byte [ebp - 4], 0xa
cmp esi, ebx
jne 0x4b90d2
push 0x64
call fcn.004f4b27
mov esi, eax
add esp, 4
mov dword [ebp - 0x34], esi
mov byte [ebp - 4], 0xb
cmp esi, ebx
je 0x4b90ca
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 0x4b90cc
xor esi, esi
mov dword [0x552af4], esi
mov byte [ebp - 4], 1
xor edi, edi
cmp edi, dword [ebp - 0x28]
jge 0x4b90f0
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov esi, dword [0x552af4]
inc edi
jmp 0x4b90d8
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, 4
jbe 0x4b9135
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax + 0x30]
cmp ecx, ebx
je 0x4b9135
mov edx, dword [eax + 0x38]
cmp edx, ebx
je 0x4b9129
mov eax, dword [eax + 0x34]
mov edx, dword [edx + 0xc]
imul eax, edx
add eax, ecx
jmp 0x4b9137
mov eax, dword [eax + 0x34]
xor edx, edx
imul eax, edx
add eax, ecx
jmp 0x4b9137
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 - 0x3c], eax
xor esi, esi
lea esp, [esp]
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 0x4b91cc
mov edx, dword [edi + 0x58]
lea ecx, [esi + esi*2]
lea eax, [edx + ecx*4]
mov ecx, dword [eax]
cmp ecx, ebx
jne 0x4b917d
xor eax, eax
jmp 0x4b9193
mov edx, dword [eax + 8]
cmp edx, ebx
je 0x4b9189
mov edx, dword [edx + 0xc]
jmp 0x4b918b
xor edx, edx
mov eax, dword [eax + 4]
imul eax, edx
add eax, ecx
push 0x5222d4
push 0x5222ac
push eax
mov eax, dword [ebp - 0x3c]
push eax
call fcn.004a42f0
add esp, 0x10
test al, al
jne 0x4b91c9
push 0x533160
lea ecx, [ebp - 0x90]
push ecx
mov dword [ebp - 0x90], 2
call fcn.004f4775
inc esi
jmp 0x4b9150
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], 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 0x4b9234
push 0x1f0
call fcn.004f4b27
mov ecx, eax
add esp, 4
mov dword [ebp - 0x34], ecx
mov byte [ebp - 4], 0xe
test ecx, ecx
je 0x4b922d
call fcn.00415650
jmp 0x4b922f
xor eax, eax
mov dword [0x552af0], eax
mov byte [ebp - 4], 0xc
xor esi, esi
lea ebx, [ebx]
cmp esi, ebx
jge 0x4b9255
mov edx, dword [edi]
mov eax, dword [edx + 4]
mov ecx, edi
call eax
mov eax, dword [0x552af0]
inc esi
jmp 0x4b9240
mov edx, dword [eax + 0x18]
test edx, edx
jne 0x4b9260
xor esi, esi
jmp 0x4b9276
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x4b926c
mov ecx, dword [ecx + 0xc]
jmp 0x4b926e
xor ecx, ecx
mov esi, dword [eax + 0x1c]
imul esi, ecx
add esi, edx
cmp dword [ebp - 0x20], 0
jne 0x4b92b4
push 0x24
call fcn.004f4b27
mov ecx, eax
add esp, 4
mov dword [ebp - 0x34], ecx
xor ebx, ebx
mov byte [ebp - 4], 0xf
cmp ecx, ebx
je 0x4b929c
call fcn.00412010
jmp 0x4b929e
xor eax, eax
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0xc
call fcn.0040cd60
cmp dword [ebp - 0x20], ebx
jne 0x4b92b6
xor eax, eax
jmp 0x4b92ce
xor ebx, ebx
cmp dword [ebp - 0x18], ebx
je 0x4b92c3
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx + 0xc]
jmp 0x4b92c5
xor ecx, ecx
mov eax, dword [ebp - 0x1c]
imul eax, ecx
add eax, dword [ebp - 0x20]
push 0x51f58c
push eax
mov ecx, esi
call fcn.0048eb70
test al, al
jne 0x4b92f4
push 0x533160
lea edx, [ebp - 0x68]
push edx
mov dword [ebp - 0x68], 1
call fcn.004f4775
mov eax, dword [vtable.CCriticalSection.0]
mov edx, dword [eax]
mov ecx, 0x5452ec
mov dword [ebp - 0x30], vtable.CCriticalLock.0
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], ebx
call edx
mov dword [ebp - 0x28], 1
mov esi, dword [0x552af4]
mov byte [ebp - 4], 0x10
cmp esi, ebx
jne 0x4b9393
push 0x64
call fcn.004f4b27
mov esi, eax
add esp, 4
mov dword [ebp - 0x34], esi
mov byte [ebp - 4], 0x11
cmp esi, ebx
je 0x4b938b
mov eax, dword [0x5515b0]
mov edx, dword [eax + 0xc]
mov ecx, 0x5515b0
call edx
add eax, 0x10
mov dword [esi + 0x10], eax
mov eax, dword [0x5515b0]
mov edx, dword [eax + 0xc]
mov ecx, 0x5515b0
call edx
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 0x4b938d
xor esi, esi
mov dword [0x552af4], esi
mov byte [ebp - 4], 0xc
xor edi, edi
lea esp, [esp]
cmp edi, dword [ebp - 0x28]
jge 0x4b93b8
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
call edx
mov esi, dword [0x552af4]
inc edi
jmp 0x4b93a0
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, 4
jbe 0x4b93fd
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax + 0x30]
cmp ecx, ebx
je 0x4b93fd
mov edx, dword [eax + 0x38]
cmp edx, ebx
je 0x4b93f1
mov eax, dword [eax + 0x34]
mov edx, dword [edx + 0xc]
imul eax, edx
add eax, ecx
jmp 0x4b93ff
mov eax, dword [eax + 0x34]
xor edx, edx
imul eax, edx
add eax, ecx
jmp 0x4b93ff
xor eax, eax
mov ecx, dword [ebp + 8]
push ecx
mov ecx, eax
call fcn.0049d260
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x3c], eax
mov dword [edx + 0x44], ebx
mov dword [ebp - 0x24], ebx
jmp 0x4b9420
mov eax, dword [ebp - 0x3c]
cmp dword [ebp - 0x24], eax
jge 0x4b97e0
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], 0x12
cmp esi, ebx
jne 0x4b94ce
push 0x64
call fcn.004f4b27
mov esi, eax
add esp, 4
mov dword [ebp - 0x34], esi
mov byte [ebp - 4], 0x13
cmp esi, ebx
je 0x4b94c6
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 0x4b94c8
xor esi, esi
mov dword [0x552af4], esi
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x30], vtable.CCriticalLock.0
xor edi, edi
jmp 0x4b94e0
cmp edi, dword [ebp - 0x28]
jge 0x4b94f8
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov esi, dword [0x552af4]
inc edi
jmp 0x4b94e0
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, 4
jbe 0x4b953d
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax + 0x30]
cmp ecx, ebx
je 0x4b953d
mov edx, dword [eax + 0x38]
cmp edx, ebx
je 0x4b9531
mov eax, dword [eax + 0x34]
mov edx, dword [edx + 0xc]
imul eax, edx
add eax, ecx
jmp 0x4b953f
mov eax, dword [eax + 0x34]
xor edx, edx
imul eax, edx
add eax, ecx
jmp 0x4b953f
xor eax, eax
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp + 8]
push edx
push ecx
mov ecx, eax
call fcn.0049d180
test al, al
je 0x4b97e0
mov ecx, dword [ebp - 0x14]
call fcn.004a0e80
mov edx, dword [vtable.CCriticalSection.0]
mov dword [ebp - 0x38], eax
mov eax, dword [edx]
mov ecx, 0x5452ec
mov dword [ebp - 0x54], vtable.CCriticalLock.0
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], ebx
call eax
mov dword [ebp - 0x4c], 1
mov esi, dword [0x552af4]
mov byte [ebp - 4], 0x14
cmp esi, ebx
jne 0x4b9603
push 0x64
call fcn.004f4b27
mov esi, eax
add esp, 4
mov dword [ebp - 0x34], esi
mov byte [ebp - 4], 0x15
cmp esi, ebx
je 0x4b95fb
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 0x4b95fd
xor esi, esi
mov dword [0x552af4], esi
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x54], vtable.CCriticalLock.0
xor edi, edi
cmp edi, dword [ebp - 0x4c]
jge 0x4b9628
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov esi, dword [0x552af4]
inc edi
jmp 0x4b9610
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, 4
jbe 0x4b966d
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax + 0x30]
cmp ecx, ebx
je 0x4b966d
mov edx, dword [eax + 0x38]
cmp edx, ebx
je 0x4b9661
mov eax, dword [eax + 0x34]
mov edx, dword [edx + 0xc]
imul eax, edx
add eax, ecx
jmp 0x4b966f
mov eax, dword [eax + 0x34]
xor edx, edx
imul eax, edx
add eax, ecx
jmp 0x4b966f
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 - 0x24]
mov edi, eax
mov eax, 0x2aaaaaab
imul esi
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea eax, [ecx + ecx*2]
add eax, eax
add eax, eax
sub esi, eax
cmp edi, ebx
je 0x4b971a
mov ecx, 0x55380c
call fcn.004174f0
mov ecx, dword [0x552af0]
mov edx, dword [ecx + 0x18]
cmp edx, ebx
jne 0x4b96c0
xor ecx, ecx
jmp 0x4b96d6
mov eax, dword [ecx + 0x20]
cmp eax, ebx
je 0x4b96cc
mov eax, dword [eax + 0xc]
jmp 0x4b96ce
xor eax, eax
mov ecx, dword [ecx + 0x1c]
imul ecx, eax
add ecx, edx
mov edx, dword [ebp - 0x38]
push ebx
push edi
push edx
call fcn.0048b850
test al, al
jne 0x4b96fa
push 0x533160
lea eax, [ebp - 0x6c]
push eax
mov dword [ebp - 0x6c], 3
call fcn.004f4775
mov eax, dword [esi*8 + 0x54f024]
mov edx, dword [esi*8 + 0x54f020]
mov ecx, dword [ebp - 0x38]
mov dword [ecx + 0x24], edx
mov dword [ecx + 0x28], eax
mov byte [ecx + 0x2c], 0
jmp 0x4b97cb
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x5c]
sub edx, dword [eax + 0x58]
mov eax, 0x2aaaaaab
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jae 0x4b97cb
mov edi, dword [ebp - 0x20]
test edi, edi
jne 0x4b9746
xor edx, edx
jmp 0x4b975c
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x4b9752
mov eax, dword [eax + 0xc]
jmp 0x4b9754
xor eax, eax
mov edx, dword [ebp - 0x1c]
imul edx, eax
add edx, edi
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x58]
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*4]
mov ecx, dword [eax]
test ecx, ecx
jne 0x4b9772
xor eax, eax
jmp 0x4b9788
mov edi, dword [eax + 8]
test edi, edi
je 0x4b977e
mov edi, dword [edi + 0xc]
jmp 0x4b9780
xor edi, edi
mov eax, dword [eax + 4]
imul eax, edi
add eax, ecx
mov ecx, dword [esi*8 + 0x54f020]
mov ebx, dword [esi*8 + 0x54f024]
mov esi, dword [eax + 4]
mov dword [ebp - 0x38], ecx
test esi, esi
je 0x4b97cb
mov edi, dword [edx + 4]
test edi, edi
je 0x4b97cb
mov ecx, 0x5537a9
call fcn.004047e0
mov edx, dword [ebp - 0x38]
mov ecx, dword [0x552adc]
push 0
push 0
push 0
push 0
push ebx
push edx
push edi
push esi
call fcn.0040f270
mov eax, dword [ebp - 0x14]
mov ecx, 1
add dword [ebp - 0x24], ecx
add dword [eax + 0x44], ecx
xor ebx, ebx
jmp 0x4b9420
mov esi, dword [ebp - 0x18]
mov byte [ebp - 4], 1
cmp esi, ebx
je 0x4b9809
dec dword [esi + 4]
jne 0x4b9809
cmp byte [esi + 8], 0
je 0x4b97fe
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
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x5c]
sub ecx, dword [eax + 0x58]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jb 0x4b9976
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 - 0x34], eax
mov byte [ebp - 4], 0x16
test eax, eax
je 0x4b9881
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 0x4b9883
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 esp, [esp]
mov edi, dword [ebp - 0x14]
mov eax, dword [edi + 0x70]
test eax, eax
je 0x4b98ad
mov eax, dword [eax + 0x10]
cmp ebx, eax
jge 0x4b9976
mov ecx, dword [edi + 0x68]
test ecx, ecx
jne 0x4b98c0
xor esi, esi
jmp 0x4b98d8
mov eax, dword [edi + 0x70]
test eax, eax
je 0x4b98cc
mov eax, dword [eax + 0xc]
jmp 0x4b98ce
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 0x4b98f3
xor ecx, ecx
jmp 0x4b9909
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x4b98ff
mov eax, dword [eax + 0xc]
jmp 0x4b9901
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 + 0x54efd0]
push eax
push esi
call fcn.0048b850
test al, al
jne 0x4b9935
push 0x533160
lea ecx, [ebp - 0x80]
push ecx
mov dword [ebp - 0x80], 8
call fcn.004f4775
mov edx, dword [edi + 0x68]
test edx, edx
jne 0x4b9940
xor eax, eax
jmp 0x4b9958
mov eax, dword [edi + 0x70]
test eax, eax
je 0x4b994c
mov ecx, dword [eax + 0xc]
jmp 0x4b994e
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 0x4b98a0
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 0x4b99a4
xor ecx, ecx
jmp 0x4b99ba
mov eax, dword [ecx + 0x38]
test eax, eax
je 0x4b99b0
mov eax, dword [eax + 0xc]
jmp 0x4b99b2
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], 1
call fcn.004174f0
mov ecx, dword [0x552af0]
mov edx, dword [ecx + 0x30]
test edx, edx
jne 0x4b99ed
xor ecx, ecx
jmp 0x4b9a03
mov eax, dword [ecx + 0x38]
test eax, eax
je 0x4b99f9
mov eax, dword [eax + 0xc]
jmp 0x4b99fb
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], 0x54f080
jmp 0x4b9a32
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