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

Disassembly:
sub esp, 0xc8
push ebx
mov ebx, dword [esp + 0xf0]
push ebp
mov ebp, dword [esp + 0xe0]
push esi
push edi
push 0x200
xor eax, eax
mov dword [esp + 0x38], 0xff
call fcn.004b15e0
mov dword [esp + 0x30], eax
mov word [eax], 0
mov eax, dword [esp + 0xe0]
add esp, 4
push eax
lea eax, [esp + 0x30]
mov edi, ebp
mov dword [esp + 0x34], 0
call fcn.004c4950
xor ecx, ecx
mov eax, 0x1006b640
lea ebx, [ebx]
add eax, 2
add ecx, 1
cmp word [eax], 0
jne 0x4bd570
mov esi, dword [esp + 0x2c]
push ecx
mov edx, 0x1006b640
mov eax, esi
call fcn.004ba790
add esp, 4
test eax, eax
je 0x4bea66
xor ecx, ecx
mov eax, 0x1006b654
nop
add eax, 2
add ecx, 1
cmp word [eax], 0
jne 0x4bd5a0
push ecx
mov edx, 0x1006b654
mov eax, esi
call fcn.004ba790
add esp, 4
test eax, eax
je 0x4bea66
xor ecx, ecx
mov eax, 0x1006b67c
jmp 0x4bd5d0
add eax, 2
add ecx, 1
cmp word [eax], 0
jne 0x4bd5d0
push ecx
mov edx, 0x1006b67c
mov eax, esi
call fcn.004ba790
add esp, 4
test eax, eax
je 0x4bea66
push esi
mov edx, 0x1006b6a0
call fcn.004ba9c0
add esp, 4
test eax, eax
jne 0x4bea66
push esi
mov edx, 0x1006b6b8
call fcn.004ba9c0
add esp, 4
test eax, eax
jne 0x4bea66
push esi
mov edx, 0x1006b6d0
call fcn.004ba9c0
add esp, 4
test eax, eax
jne 0x4bea66
push esi
mov edx, 0x1006b6f4
call fcn.004ba9c0
add esp, 4
test eax, eax
jne 0x4bea66
cmp dword [esp + 0x30], eax
je 0x4bea66
push 0xc
lea ecx, [esp + 0xd0]
push ecx
call dword [0x10075f84]
mov edx, dword [esp + 0xdc]
xor eax, eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov eax, dword [edx + 0xb8]
push 2
lea edi, [esp + 0xd0]
mov dword [esp + 0xd0], esi
call fcn.00492840
cmp dword [esp + 0xd0], 0
je 0x4bd6e0
mov eax, dword [esp + 0xd4]
push eax
lea eax, [esp + 0xb0]
call fcn.004979e0
mov ecx, dword [esp + 0xac]
push ecx
lea edi, [esp + 0x30]
call fcn.00498aa0
lea ecx, [esp + 0xac]
call fcn.004894f0
mov edx, dword [esp + 0xd4]
push edx
call fcn.0049a8f0
push 4
lea eax, [esp + 0x18]
push eax
call dword [0x10075f84]
lea esi, [esp + 0x60]
call fcn.004bc770
mov eax, dword [esp + 0xdc]
mov ecx, esi
push ecx
lea edx, [esp + 0x18]
push edx
push eax
mov eax, ebp
call fcn.004c66d0
test eax, eax
jne 0x4bd746
mov ecx, dword [esp + 0x104]
mov dword [ecx], 1
lea esi, [esp + 0x60]
call fcn.004bea90
lea esi, [esp + 0x14]
call fcn.004a2a60
lea ecx, [esp + 0x2c]
call fcn.004894f0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc8
ret 0x2c
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov eax, dword [edx + 0x5c]
call eax
test eax, eax
je 0x4bd771
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x100]
mov dword [ecx], 0
mov dword [edx], 0xc0000022
jmp 0x4bd71e
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov edx, dword [eax + 0x68]
call edx
test eax, eax
je 0x4bd79c
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x100]
mov dword [eax], 0
mov dword [ecx], 0xc000003a
jmp 0x4bd71e
mov ecx, dword [esp + 0x80]
mov eax, ecx
sub eax, 0
je 0x4bd7ca
sub eax, 1
je 0x4bd7c6
sub eax, 1
je 0x4bd7c6
mov edx, dword [esp + 0x104]
mov dword [edx], 1
jmp 0x4bd71e
xor eax, eax
jmp 0x4bd7cf
mov eax, 1
mov edx, dword [esp + 0xf8]
test edx, edx
jne 0x4bd83b
test eax, eax
je 0x4bd856
mov eax, dword [esp + 0xec]
test eax, eax
mov dword [esp + 0x28], 2
je 0x4bd7f4
mov dword [eax + 4], edx
mov edi, dword [esp + 0x78]
test edi, edi
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x1c], edi
je 0x4bd80f
mov edx, dword [edi]
mov eax, dword [edx + 4]
push edi
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0x58]
mov ecx, edi
call eax
test eax, eax
jne 0x4be617
mov ecx, dword [esp + 0x104]
lea esi, [esp + 0x1c]
mov dword [ecx], 1
call fcn.004a2a60
jmp 0x4bd71e
test eax, eax
jne 0x4bd8f2
cmp edx, 2
je 0x4bd856
cmp edx, 3
je 0x4bd856
cmp edx, 5
jne 0x4be995
mov eax, dword [esp + 0xec]
test eax, eax
je 0x4bd868
mov dword [eax + 4], 2
cmp ecx, 1
jne 0x4bdb98
mov edi, dword [esp + 0x78]
test edi, edi
mov dword [esp + 0x18], edi
je 0x4bd885
mov eax, dword [edi]
mov ecx, dword [eax + 4]
push edi
call ecx
mov edx, dword [edi]
mov edx, dword [edx + 0x20]
lea eax, [esp + 0xa0]
push eax
mov ecx, edi
call edx
mov eax, dword [edi]
mov edx, dword [eax + 0x24]
lea ecx, [esp + 0x54]
push ecx
mov ecx, edi
call edx
lea esi, [esp + 0x60]
call fcn.004bc7e0
test eax, eax
je 0x4bd958
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x100]
mov dword [eax], 0
mov dword [ecx], 0xc000003a
lea ecx, [esp + 0x54]
call fcn.004894f0
lea ecx, [esp + 0xa0]
call fcn.004894f0
lea esi, [esp + 0x18]
call fcn.004a2a60
jmp 0x4bd71e
cmp edx, 1
je 0x4bd8fc
cmp edx, 3
jne 0x4bd91f
mov eax, dword [esp + 0xec]
test eax, eax
mov dword [esp + 0x28], 1
je 0x4bd7f4
mov dword [eax + 4], 1
jmp 0x4bd7f4
test eax, eax
je 0x4be995
cmp edx, 4
je 0x4bd935
cmp edx, 5
jne 0x4be95b
mov eax, dword [esp + 0xec]
test eax, eax
mov dword [esp + 0x28], 2
je 0x4bd7f4
mov dword [eax + 4], 3
jmp 0x4bd7f4
mov ebp, dword [esp + 0x7c]
test ebp, ebp
mov dword [esp + 0x38], ebp
je 0x4bd96d
mov edx, dword [ebp]
mov eax, dword [edx + 4]
push ebp
call eax
mov edx, dword [ebp]
mov eax, dword [esp + 0xa0]
mov edx, dword [edx + 0x50]
push eax
mov ecx, ebp
call edx
mov eax, dword [edi]
mov edx, dword [eax + 0x6c]
push 0
mov ecx, edi
call edx
mov eax, dword [edi]
mov edx, dword [eax + 0x58]
mov ecx, edi
call edx
test eax, eax
jne 0x4bda04
mov eax, dword [ebp]
mov edx, dword [eax + 0x1c]
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0xa0]
lea ecx, [esp + 0xac]
push ecx
mov ecx, ebp
call edx
mov ecx, dword [eax]
mov eax, dword [esp + 0xf4]
mov edx, dword [esp + 0xe4]
push ebx
push eax
push edx
push esi
mov eax, ebx
and eax, 1
push edi
push ecx
add eax, eax
lea ecx, [esp + 0x3c]
or eax, 1
push ecx
call fcn.004cfb90
add esp, 0x1c
push eax
lea esi, [esp + 0x1c]
call fcn.004c88f0
lea esi, [esp + 0x24]
call fcn.004a2a60
lea ecx, [esp + 0xac]
call fcn.004894f0
mov edi, dword [esp + 0x18]
mov edx, dword [edi]
mov eax, dword [edx + 0x74]
mov ecx, edi
call eax
test al, 0x10
jne 0x4bda52
push 8
lea ecx, [esp + 0xbc]
push ecx
call dword [0x10075f84]
mov edx, dword [edi]
mov edx, dword [edx + 0x28]
lea eax, [esp + 0x24]
push eax
mov ecx, edi
call edx
mov edx, dword [esp + 0xbc]
mov eax, dword [eax]
mov ecx, dword [eax]
push edx
mov edx, dword [esp + 0xbc]
push edx
push eax
mov eax, dword [ecx + 0x18]
call eax
lea esi, [esp + 0x24]
call fcn.004a2a60
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
mov esi, edi
push edi
mov dword [esp + 0x20], esi
call edx
cmp dword [esp + 0x74], 0
je 0x4bdb0e
cmp dword [esp + 0x70], 0
je 0x4bdb0e
push 4
lea eax, [esp + 0x24]
push eax
call dword [0x10075f84]
mov ecx, dword [esp + 0xf4]
mov edx, dword [edi]
mov edx, dword [edx + 0x44]
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0xf4]
push ebx
push ecx
mov ecx, dword [esp + 0xf0]
push eax
mov eax, dword [esp + 0x80]
push ecx
push eax
mov ecx, edi
call edx
cmp dword [esp + 0x20], 0
jne 0x4bdaf3
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x100]
lea esi, [esp + 0x20]
mov dword [eax], 0
mov dword [ecx], 0xc0000022
call fcn.004a2a60
lea esi, [esp + 0x1c]
call fcn.004a2a60
lea esi, [esp + 0x38]
call fcn.004a2a60
jmp 0x4bd8cf
lea edx, [esp + 0x20]
push edx
lea esi, [esp + 0x20]
call fcn.004c88f0
lea esi, [esp + 0x20]
call fcn.004a2a60
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0xf0]
mov eax, dword [esi]
mov edx, dword [eax + 0x78]
push ecx
mov ecx, esi
call edx
call fcn.004bb580
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x28]
push ecx
add edx, 0x78
push edx
call fcn.004c8990
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xe0]
lea esi, [esp + 0x1c]
mov dword [ecx], eax
call fcn.004a2a60
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xa0]
mov edx, dword [ebp]
mov edx, dword [edx + 0x54]
push edi
push eax
push ecx
mov ecx, ebp
call edx
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x100]
lea esi, [esp + 0x38]
mov dword [eax], 0
mov dword [ecx], 0
call fcn.004a2a60
jmp 0x4bd8cf
cmp ecx, 2
jne 0x4bd711
mov edi, dword [esp + 0x7c]
test edi, edi
mov ebp, dword [esp + 0x90]
mov dword [esp + 0x1c], edi
je 0x4bdbbc
mov edx, dword [edi]
mov eax, dword [edx + 4]
push edi
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0x58]
mov ecx, edi
call eax
test eax, eax
jne 0x4be3fe
push 4
lea ecx, [esp + 0x1c]
push ecx
mov dword [esp + 0xc0], ebp
call dword [0x10075f84]
mov ebx, dword [esp + 0x1c]
mov edx, dword [ebx]
mov eax, dword [edx + 4]
push ebx
call eax
mov ecx, dword [esp + 0x94]
xor esi, esi
push ecx
lea edi, [esp + 0x4c]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
call fcn.00498aa0
mov edx, edi
push edx
lea eax, [esp + 0x58]
call fcn.00497a00
cmp ebp, esi
je 0x4bde5e
cmp dword [esp + 0x4c], 0
jne 0x4bdc2e
cmp word [ebp], 0x5c
je 0x4bdc3c
push 0x10060788
lea esi, [esp + 0x4c]
call fcn.00497c00
push ebp
lea esi, [esp + 0x4c]
call fcn.00497c00
mov esi, dword [esp + 0x48]
lea eax, [esp + 0x24]
push eax
mov eax, esi
call fcn.004bc840
mov ecx, dword [esp + 0x104]
add esp, 4
cmp eax, 0xc0000010
mov dword [ecx], eax
je 0x4bdef4
mov eax, dword [esp + 0x24]
cmp eax, 0xffffffff
je 0x4bdf82
test al, 0x10
je 0x4bdef4
mov esi, 0xff
push 0x200
xor eax, eax
mov dword [esp + 0xac], esi
call fcn.004b15e0
xor edi, edi
add esp, 4
mov dword [esp + 0xa0], eax
mov word [eax], di
push 0x200
xor eax, eax
mov dword [esp + 0xa8], edi
mov dword [esp + 0x44], esi
call fcn.004b15e0
mov word [eax], di
mov edx, dword [ebx]
mov edx, dword [edx + 0x1c]
mov dword [esp + 0x3c], eax
add esp, 4
lea eax, [esp + 0xc0]
push eax
mov ecx, ebx
mov dword [esp + 0x40], edi
call edx
mov eax, dword [eax]
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0xa4]
push edx
push ebp
push eax
call fcn.004bc010
mov eax, dword [esp + 0xd0]
add esp, 0x10
cmp eax, edi
je 0x4bdd1d
call fcn.004b16a0
mov dword [esp + 0xc0], edi
mov dword [esp + 0xc4], edi
mov dword [esp + 0xc8], edi
mov esi, dword [esp + 0x3c]
mov edx, dword [ebx]
mov ebp, dword [esp + 0x38]
mov edx, dword [edx + 0x1c]
neg esi
lea eax, [esp + 0xac]
sbb esi, esi
push eax
mov ecx, ebx
and esi, ebp
call edx
mov ecx, dword [esp + 0xfc]
mov edx, dword [esp + 0xf4]
mov eax, dword [eax]
push ecx
mov ecx, dword [esp + 0xe8]
push edx
mov edx, dword [esp + 0xa8]
push ecx
push esi
push edx
push eax
lea ecx, [esp + 0x40]
push ecx
mov eax, 2
call fcn.004cfb90
mov eax, dword [esp + 0xc8]
add esp, 0x1c
cmp eax, edi
je 0x4bdd97
call fcn.004b16a0
mov dword [esp + 0xac], edi
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], edi
cmp dword [esp + 0x18], edi
mov esi, dword [esp + 0x28]
jne 0x4bddb3
cmp esi, edi
mov dword [esp + 0x18], esi
je 0x4bddc6
mov edx, dword [esi]
mov eax, dword [edx + 4]
push esi
call eax
jmp 0x4bddc6
mov edx, dword [ebx]
mov eax, dword [esp + 0xa0]
mov edx, dword [edx + 0x54]
push esi
push ebp
push eax
mov ecx, ebx
call edx
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
push ebx
call ecx
cmp esi, edi
mov ebx, esi
je 0x4bdddc
mov edx, dword [esi]
mov eax, dword [edx + 4]
push esi
call eax
mov edx, dword [esp + 0x68]
cmp edx, dword [esp + 0x6c]
jb 0x4bddea
xor ebp, ebp
jmp 0x4bde08
xor ecx, ecx
cmp word [edx], di
mov ebp, edx
mov eax, edx
je 0x4bde00
add eax, 2
add ecx, 1
cmp word [eax], di
jne 0x4bddf5
lea ecx, [edx + ecx*2 + 2]
mov dword [esp + 0x68], ecx
cmp esi, edi
je 0x4bde18
mov edx, dword [esi]
mov eax, dword [edx + 8]
push esi
call eax
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x38]
cmp eax, edi
je 0x4bde31
call fcn.004b16a0
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
mov eax, dword [esp + 0xa0]
cmp eax, edi
je 0x4bde56
call fcn.004b16a0
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa8], edi
cmp ebp, edi
jne 0x4bdc20
mov eax, dword [esp + 0x54]
test eax, eax
mov ecx, dword [esp + 0x104]
mov dword [ecx], 1
je 0x4bde78
call fcn.004b16a0
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4bde85
call fcn.004b16a0
test ebx, ebx
je 0x4bde91
mov edx, dword [ebx]
mov eax, dword [edx + 8]
push ebx
call eax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4bdea9
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea esi, [esp + 0x60]
call fcn.004bea90
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4bded6
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4bea7e
call fcn.004b16a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc8
ret 0x2c
xor edi, edi
mov eax, dword [esp + 0x104]
mov dword [eax], 1
mov eax, dword [esp + 0x54]
cmp eax, edi
je 0x4bdf10
call fcn.004b16a0
cmp esi, edi
je 0x4bdf1b
mov eax, esi
call fcn.004b16a0
cmp ebx, edi
je 0x4bdf27
mov ecx, dword [ebx]
mov edx, dword [ecx + 8]
push ebx
call edx
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x4bdf3b
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea esi, [esp + 0x60]
call fcn.004bea90
mov eax, dword [esp + 0x14]
cmp eax, edi
je 0x4bdf64
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x2c]
cmp eax, edi
je 0x4bea7e
call fcn.004b16a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc8
ret 0x2c
mov edx, dword [esp + 0x68]
xor edi, edi
cmp edx, dword [esp + 0x6c]
jae 0x4bdfe4
xor ecx, ecx
cmp word [edx], di
mov eax, edx
je 0x4bdfa2
add eax, 2
add ecx, 1
cmp word [eax], di
jne 0x4bdf97
lea eax, [edx + ecx*2 + 2]
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x54]
cmp eax, edi
mov dword [ecx], 1
je 0x4bdfc4
call fcn.004b16a0
cmp esi, edi
je 0x4bdfcf
mov eax, esi
call fcn.004b16a0
cmp ebx, edi
je 0x4bdf27
mov edx, dword [ebx]
mov eax, dword [edx + 8]
push ebx
call eax
jmp 0x4bdf27
mov eax, dword [esp + 0xdc]
cmp dword [eax], 1
jne 0x4bdef6
mov esi, dword [esp + 0xfc]
test esi, 1
je 0x4be064
cmp dword [esp + 0x74], edi
je 0x4be099
mov eax, dword [esp + 0x54]
cmp eax, edi
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x100]
mov dword [ecx], edi
mov dword [edx], 0xc0000034
je 0x4be030
call fcn.004b16a0
cmp dword [esp + 0x48], edi
je 0x4be03f
mov eax, dword [esp + 0x48]
call fcn.004b16a0
cmp ebx, edi
je 0x4be04b
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
push ebx
call ecx
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x4bdf3b
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
jmp 0x4bdf37
cmp dword [esp + 0x70], edi
je 0x4be099
mov eax, dword [esp + 0x104]
mov dword [eax], edi
mov eax, dword [esp + 0x54]
cmp eax, edi
mov dword [ecx], 0xc0000034
je 0x4be086
call fcn.004b16a0
cmp dword [esp + 0x48], edi
je 0x4bdfcf
mov eax, dword [esp + 0x48]
jmp 0x4bdfca
push 4
lea eax, [esp + 0x24]
push eax
call dword [0x10075f84]
mov ecx, dword [esp + 0xf4]
mov edx, dword [ebx]
mov edx, dword [edx + 0x38]
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0xf4]
push esi
push ecx
mov ecx, dword [esp + 0xf0]
push eax
push ecx
push ebp
mov ecx, ebx
call edx
mov eax, dword [esp + 0x20]
cmp eax, edi
jne 0x4be117
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x100]
mov dword [eax], edi
mov eax, dword [esp + 0x54]
cmp eax, edi
mov dword [ecx], 0xc0000022
je 0x4be0f9
call fcn.004b16a0
mov eax, dword [esp + 0x48]
cmp eax, edi
je 0x4bdfd7
call fcn.004b16a0
mov edx, dword [ebx]
mov eax, dword [edx + 8]
push ebx
call eax
jmp 0x4bdf27
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
mov ebp, eax
push eax
mov dword [esp + 0x3c], ebp
call edx
cmp dword [esp + 0x74], edi
je 0x4be1ff
cmp dword [esp + 0x70], edi
je 0x4be1ff
push 4
lea eax, [esp + 0x2c]
push eax
call dword [0x10075f84]
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
mov edx, dword [edx + 0x44]
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0xf8]
push esi
push eax
mov eax, dword [esp + 0xfc]
push eax
mov eax, dword [esp + 0xf4]
push eax
mov eax, dword [esp + 0x84]
push eax
call edx
cmp dword [esp + 0x28], edi
push ebp
jne 0x4be1d3
mov eax, dword [esp + 0x108]
mov edx, dword [ebp]
mov ecx, dword [esp + 0x104]
mov dword [eax], edi
mov eax, dword [edx + 8]
mov dword [ecx], 0xc0000022
call eax
mov eax, dword [esp + 0x20]
cmp eax, edi
je 0x4be1b0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x54]
cmp eax, edi
je 0x4be1bd
call fcn.004b16a0
mov eax, dword [esp + 0x48]
cmp eax, edi
je 0x4be043
call fcn.004b16a0
jmp 0x4be043
mov eax, dword [ebp]
mov ecx, dword [eax + 8]
call ecx
mov eax, dword [esp + 0x28]
cmp eax, edi
mov dword [esp + 0x38], eax
je 0x4be1ff
mov edx, dword [eax]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
cmp eax, edi
je 0x4be1ff
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push edi
push 1
push 1
push edi
call dword [0x1005f1f4]
mov edx, dword [esp + 0xdc]
add eax, 0x6000000
and eax, 0xfffffffc
mov dword [esp + 0x24], eax
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x28]
push ecx
add edx, 0x78
push edx
call fcn.004c8990
cmp dword [esp + 0x18], edi
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xe0]
mov dword [ecx], eax
je 0x4be2f6
mov esi, 0xff
push 0x200
xor eax, eax
mov dword [esp + 0xcc], esi
call fcn.004b15e0
add esp, 4
mov dword [esp + 0xc0], eax
mov word [eax], di
push 0x200
xor eax, eax
mov dword [esp + 0xc8], edi
mov dword [esp + 0xb8], esi
call fcn.004b15e0
mov ecx, dword [esp + 0xbc]
add esp, 4
lea edx, [esp + 0xac]
push edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0xb0], eax
mov word [eax], di
lea eax, [esp + 0xc4]
push eax
push ecx
push edx
mov dword [esp + 0xc0], edi
call fcn.004bc010
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0xbc]
mov eax, dword [ecx]
mov esi, dword [esp + 0xd0]
mov eax, dword [eax + 0x54]
add esp, 0x10
push edx
push ebp
push esi
call eax
cmp ebp, edi
je 0x4be2eb
mov eax, ebp
call fcn.004b16a0
cmp esi, edi
je 0x4be2f6
mov eax, esi
call fcn.004b16a0
mov eax, dword [esp + 0x38]
cmp eax, edi
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x100]
mov dword [ecx], edi
mov dword [edx], edi
je 0x4be318
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x20]
cmp eax, edi
je 0x4be32c
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x54]
cmp eax, edi
je 0x4be339
call fcn.004b16a0
mov eax, dword [esp + 0x48]
cmp eax, edi
je 0x4be346
call fcn.004b16a0
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
push ebx
call ecx
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x4be362
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x94]
cmp eax, edi
je 0x4be393
call fcn.004b16a0
mov dword [esp + 0x94], edi
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], edi
mov eax, dword [esp + 0x84]
cmp eax, edi
je 0x4be3b8
call fcn.004b16a0
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], edi
mov eax, dword [esp + 0x7c]
cmp eax, edi
je 0x4be3cc
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x7c], edi
mov eax, dword [esp + 0x78]
cmp eax, edi
je 0x4be3e0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x78], edi
mov eax, dword [esp + 0x60]
cmp eax, edi
je 0x4bdf50
call fcn.004b16a0
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edi
jmp 0x4bdf50
lea esi, [esp + 0x60]
call fcn.004bc7e0
test eax, eax
je 0x4be433
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x100]
lea esi, [esp + 0x1c]
mov dword [eax], 0
mov dword [ecx], 0xc000003a
call fcn.004a2a60
jmp 0x4bd71e
test ebx, 1
je 0x4be46a
cmp dword [esp + 0x74], 0
je 0x4be499
mov edx, dword [esp + 0x104]
mov eax, dword [esp + 0x100]
lea esi, [esp + 0x1c]
mov dword [edx], 0
mov dword [eax], 0xc0000034
call fcn.004a2a60
jmp 0x4bd71e
cmp dword [esp + 0x70], 0
je 0x4be499
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x100]
lea esi, [esp + 0x1c]
mov dword [ecx], 0
mov dword [edx], 0xc0000034
call fcn.004a2a60
jmp 0x4bd71e
push 4
lea eax, [esp + 0x24]
push eax
call dword [0x10075f84]
mov ecx, dword [esp + 0xf4]
mov edx, dword [edi]
mov edx, dword [edx + 0x38]
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0xf4]
push ebx
push ecx
mov ecx, dword [esp + 0xf0]
push eax
push ecx
push ebp
mov ecx, edi
call edx
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x4be507
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x100]
lea esi, [esp + 0x20]
mov dword [eax], 0
mov dword [ecx], 0xc0000022
call fcn.004a2a60
lea esi, [esp + 0x1c]
call fcn.004a2a60
jmp 0x4bd71e
mov edx, dword [eax]
mov dword [esp + 0x28], eax
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x74], 0
je 0x4be5c8
cmp dword [esp + 0x70], 0
je 0x4be5c8
push 4
lea ecx, [esp + 0x1c]
push ecx
call dword [0x10075f84]
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
mov edx, dword [edx + 0x44]
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0xf8]
push ebx
push eax
mov eax, dword [esp + 0xfc]
push eax
mov eax, dword [esp + 0xf4]
push eax
mov eax, dword [esp + 0x84]
push eax
call edx
cmp dword [esp + 0x18], 0
jne 0x4be5b1
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x100]
lea esi, [esp + 0x18]
mov dword [eax], 0
mov dword [ecx], 0xc0000022
call fcn.004a2a60
lea esi, [esp + 0x28]
call fcn.004a2a60
lea esi, [esp + 0x20]
call fcn.004a2a60
lea esi, [esp + 0x1c]
call fcn.004a2a60
jmp 0x4bd71e
lea edx, [esp + 0x18]
push edx
lea esi, [esp + 0x2c]
call fcn.004c88f0
lea esi, [esp + 0x18]
call fcn.004a2a60
call fcn.004bb580
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x28]
push ecx
add edx, 0x78
push edx
call fcn.004c8990
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x104]
mov dword [ecx], eax
mov eax, dword [esp + 0x100]
mov dword [edx], 0
mov dword [eax], 0
jmp 0x4be591
lea esi, [esp + 0x60]
call fcn.004bc7e0
test eax, eax
je 0x4be659
mov edx, dword [esp + 0x104]
mov dword [edx], 0
call fcn.004bc7e0
mov ecx, dword [esp + 0x100]
neg eax
sbb eax, eax
and eax, 6
add eax, 0xc0000034
lea esi, [esp + 0x1c]
mov dword [ecx], eax
call fcn.004a2a60
jmp 0x4bd71e
mov edx, dword [edi]
mov eax, dword [edx + 0x74]
mov ecx, edi
call eax
mov edi, eax
mov eax, dword [esp + 0xfc]
shr edi, 4
and edi, 1
test al, 1
je 0x4be67d
test edi, edi
je 0x4be471
test al, 0x40
je 0x4be6ad
test edi, edi
je 0x4be6ad
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x100]
lea esi, [esp + 0x1c]
mov dword [eax], 0
mov dword [ecx], 0xc0000034
call fcn.004a2a60
jmp 0x4bd71e
lea esi, [esp + 0x1c]
call fcn.004a2a60
mov ebp, dword [esp + 0x7c]
test ebp, ebp
mov dword [esp + 0x24], ebp
je 0x4be6cb
mov edx, dword [ebp]
mov eax, dword [edx + 4]
push ebp
call eax
push 4
lea ecx, [esp + 0x24]
push ecx
call dword [0x10075f84]
test edi, edi
je 0x4be738
cmp dword [esp + 0x74], 0
jne 0x4be738
lea esi, [esp + 0x60]
call fcn.004bc810
push 4
lea edx, [esp + 0x3c]
push edx
call dword [0x10075f84]
mov edx, dword [esp + 0xfc]
mov eax, dword [ebp]
mov eax, dword [eax + 0x3c]
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [esp + 0xf8]
push edx
mov edx, dword [esp + 0xec]
push ecx
push edx
push ebx
mov ecx, ebp
call eax
lea ecx, [esp + 0x38]
push ecx
lea esi, [esp + 0x24]
call fcn.004c88f0
lea esi, [esp + 0x38]
jmp 0x4be907
push 4
lea edx, [esp + 0x1c]
push edx
call dword [0x10075f84]
test ebx, ebx
je 0x4be782
cmp word [ebx], 0
je 0x4be782
lea esi, [esp + 0x60]
call fcn.004bc810
mov esi, dword [esp + 0xfc]
mov edi, dword [esp + 0xf4]
mov edx, dword [esp + 0xe4]
mov eax, dword [ebp]
mov eax, dword [eax + 0x3c]
lea ecx, [esp + 0x18]
push ecx
push esi
push edi
push edx
push ebx
mov ecx, ebp
call eax
jmp 0x4be7c4
mov eax, dword [esp + 0x78]
test eax, eax
mov dword [esp + 0x38], eax
je 0x4be796
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
lea eax, [esp + 0x38]
push eax
lea esi, [esp + 0x1c]
call fcn.004c88f0
lea esi, [esp + 0x38]
call fcn.004a2a60
lea esi, [esp + 0x60]
call fcn.004bc810
mov esi, dword [esp + 0xfc]
mov edi, dword [esp + 0xf4]
cmp dword [esp + 0x18], 0
jne 0x4be805
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x100]
mov dword [ecx], 0
mov dword [edx], 0xc0000022
lea esi, [esp + 0x18]
call fcn.004a2a60
lea esi, [esp + 0x20]
call fcn.004a2a60
lea esi, [esp + 0x24]
call fcn.004a2a60
jmp 0x4bd71e
push 4
lea eax, [esp + 0x20]
push eax
call dword [0x10075f84]
mov eax, dword [esp + 0x70]
test eax, eax
je 0x4be868
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
lea ebx, [esp + 0x1c]
push ebx
mov ebx, dword [esp + 0xe8]
push esi
push edi
push ebx
push eax
mov eax, dword [edx + 0x48]
call eax
cmp dword [esp + 0x1c], 0
jne 0x4be8a5
cmp dword [esp + 0x28], 2
jne 0x4be87d
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov edx, dword [edx + 0x44]
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0xf4]
push esi
push edi
push eax
mov eax, dword [esp + 0x80]
push ebx
push eax
call edx
jmp 0x4be876
lea eax, [esp + 0x18]
push eax
lea esi, [esp + 0x20]
call fcn.004c88f0
cmp dword [esp + 0x1c], 0
jne 0x4be8a5
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x100]
lea esi, [esp + 0x1c]
mov dword [ecx], 0
mov dword [edx], 0xc0000022
call fcn.004a2a60
jmp 0x4be7e5
cmp dword [esp + 0x28], 2
jne 0x4be8ec
push 8
lea eax, [esp + 0x3c]
push eax
call dword [0x10075f84]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x28]
lea eax, [esp + 0xb8]
push eax
call edx
mov edx, dword [esp + 0x3c]
mov eax, dword [eax]
mov ecx, dword [eax]
push edx
mov edx, dword [esp + 0x3c]
push edx
push eax
mov eax, dword [ecx + 0x18]
call eax
lea esi, [esp + 0xb8]
call fcn.004a2a60
lea ecx, [esp + 0x1c]
push ecx
lea esi, [esp + 0x24]
call fcn.004c88f0
lea esi, [esp + 0x1c]
call fcn.004a2a60
lea esi, [esp + 0x18]
call fcn.004a2a60
call fcn.004bb580
mov ecx, dword [esp + 0xdc]
lea edx, [esp + 0x20]
mov dword [esp + 0x38], eax
push edx
lea eax, [esp + 0x3c]
push eax
add ecx, 0x78
push ecx
call fcn.004c8990
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0x104]
mov dword [eax], edx
mov edx, dword [esp + 0x100]
mov dword [ecx], 0
mov dword [edx], 0
jmp 0x4be7ee
cmp edx, 2
jne 0x4bea47
mov eax, dword [esp + 0xec]
test eax, eax
je 0x4be976
mov dword [eax + 4], 4
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x100]
mov dword [eax], 0
mov dword [ecx], 0xc0000035
jmp 0x4bd71e
cmp edx, 1
je 0x4be9a3
cmp edx, 4
jne 0x4bea47
cmp ecx, 2
jne 0x4bea1f
mov esi, dword [esp + 0x7c]
test esi, esi
mov dword [esp + 0xb8], esi
je 0x4be9bf
mov edx, dword [esi]
mov eax, dword [edx + 4]
push esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x58]
mov ecx, esi
call eax
test eax, eax
lea esi, [esp + 0xb8]
sete bl
call fcn.004a2a60
test bl, bl
lea esi, [esp + 0x60]
je 0x4be9f3
mov ecx, dword [esp + 0x104]
mov dword [ecx], 1
jmp 0x4bd722
call fcn.004bc7e0
mov edx, dword [esp + 0x100]
mov ecx, dword [esp + 0x104]
neg eax
sbb eax, eax
and eax, 6
add eax, 0xc0000034
mov dword [edx], eax
mov dword [ecx], 0
jmp 0x4bd71e
cmp ecx, 1
jne 0x4bd7b4
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0x104]
mov dword [eax], 0xc0000034
mov dword [ecx], 0
jmp 0x4bd71e
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x100]
mov dword [eax], 0
mov dword [ecx], 0xc000000d
jmp 0x4bd71e
test esi, esi
mov edx, dword [esp + 0x104]
mov dword [edx], 1
je 0x4bea7e
mov eax, esi
call fcn.004b16a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc8
ret 0x2c