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

Disassembly:
sub esp, 0xbe4
push ebx
push ebp
mov ebp, ecx
mov eax, dword [ebp + 0x18]
push esi
mov esi, dword [eax + 0x68]
mov eax, dword [ebp + 0x50]
test eax, eax
lea ebx, [ebp + 0x50]
mov dword [esp + 0x14], esi
je 0x4afc48
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x4afc48
mov ecx, ebp
call fcn.004a7d50
test eax, eax
je 0x4afc48
mov ecx, ebp
call fcn.004a93e0
mov eax, dword [ebp + 0x4c]
test eax, eax
mov eax, dword [esp + 0xbfc]
je 0x4afcc8
test eax, eax
jne 0x4afc72
test byte [ebp + 0x57], 1
je 0x4afc72
mov ecx, ebp
call fcn.004a93e0
mov eax, dword [ebp + 0x54]
and eax, 0xfeffffff
mov dword [ebp + 0x54], eax
mov eax, dword [ebp + 0x4c]
test eax, eax
jne 0x4b0fd1
cmp dword [ebx], 0
jne 0x4b0fd1
cmp word [esi + 0x2a], 0
jne 0x4b0fd1
mov ecx, dword [ebp + 4]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x4afca8
call fcn.0042b960
test al, al
jne 0x4b0fd1
mov eax, dword [ebp + 0x20]
test eax, eax
push edi
mov edi, dword [esp + 0xbf8]
je 0x4afce2
mov eax, dword [eax + 0x2c]
mov ecx, dword [eax + 0x210]
test ecx, ecx
je 0x4afcd6
mov eax, ecx
jmp 0x4afcdd
test eax, eax
mov eax, dword [ebp + 0x54]
je 0x4afc6a
or eax, 0x1000000
jmp 0x4afc6f
mov ecx, eax
call fcn.004ba290
cmp eax, 8
jl 0x4afd4a
push edi
call fcn.00443fe0
fld qword [0x68a6c0]
fucompp
add esp, 4
fnstsw ax
test ah, 0x44
jp 0x4afd16
push edi
call fcn.00444000
fld qword [0x68a6c0]
fucompp
add esp, 4
fnstsw ax
test ah, 0x44
jnp case.0x4afd60.1
push edi
call fcn.00444020
fld qword [0x68a6c0]
fucompp
add esp, 4
fnstsw ax
test ah, 0x44
jp 0x4afd4a
push edi
call fcn.00444040
fld qword [0x68a6c0]
fucompp
add esp, 4
fnstsw ax
test ah, 0x44
jnp case.0x4afd60.1
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + 0x78]
cmp ecx, 0x62
ja case.0x4afd60.1
movzx edx, byte [ecx + 0x4b1000]
jmp dword [edx*4 + 0x4b0fe0]
mov ecx, dword [ebp + 4]
mov ecx, dword [ecx + 0x28]
test ecx, ecx
je 0x4afd99
mov esi, dword [esp + 0xc04]
mov edx, dword [esp + 0xbfc]
test esi, esi
setne al
push edx
push eax
push edi
call fcn.004ad500
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbe4
ret 0x10
push edi
push 0
push eax
push esi
lea ecx, [esp + 0x140]
call fcn.00426f80
mov eax, dword [ebp + 0x18]
mov cl, byte [eax + 0x7e]
cmp cl, 0x20
je 0x4afdc5
cmp cl, 0x53
mov dword [esp + 0xbb8], 0
jne 0x4afdd0
mov dword [esp + 0xbb8], 1
mov bl, byte [eax + 0x7e]
mov eax, dword [ebp + 8]
cmp bl, 0x53
setne cl
dec cl
and ecx, 2
test eax, eax
mov byte [esp + 0xbc0], cl
je 0x4afe01
mov edx, dword [eax + 4]
mov al, byte [edx + 0x5c]
test al, al
setne al
movzx ecx, al
mov dword [esp + 0xbbc], ecx
add edi, 0x1c
mov edx, dword [edi]
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
mov dword [esp + 0x180], edx
mov edx, dword [edi + 0xc]
mov dword [esp + 0x18c], edx
mov edx, dword [esp + 0xc04]
mov dword [esp + 0x188], ecx
mov ecx, dword [esp + 0xbfc]
mov dword [esp + 0xbf0], ebp
push edx
add ebp, 0x7c
mov dword [esp + 0x188], eax
mov eax, dword [edi + 0x10]
push ebp
mov dword [esp + 0xbcc], ecx
push 1
lea ecx, [esp + 0x13c]
mov dword [esp + 0x19c], eax
call fcn.004a8360
mov al, byte [esp + 0x150]
test al, al
lea ecx, [esp + 0x130]
jne 0x4b0880
call fcn.004b6690
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbe4
ret 0x10
lea ecx, [esp + 0x48]
call fcn.00402150
mov eax, dword [esi + 0x210]
test eax, eax
jne 0x4afea6
mov ecx, esi
call fcn.004ba290
mov dword [esp + 0x8c], eax
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + 0x74]
mov edx, dword [eax + 0x70]
push ecx
push 0
push edx
lea ecx, [esp + 0x54]
call fcn.004b5f20
mov eax, dword [ebp + 0x18]
mov dl, byte [eax + 0x7e]
xor ecx, ecx
cmp dl, 0x21
sete cl
lea edx, [esp + 0x114]
push edx
mov dword [esp + 0xb0], ecx
lea ecx, [esp + 0x4c]
call fcn.004b7bb0
lea eax, [esp + 0xcc]
mov ecx, 7
lea esi, [esp + 0x114]
lea edi, [esp + 0xcc]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xbf8]
push eax
push ecx
mov edx, eax
push edx
call fcn.00444910
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov dl, byte [eax + ecx]
add esp, 0xc
inc eax
mov dword [esp + 0x4c], eax
mov cl, byte [eax + ecx]
inc eax
mov dword [esp + 0x4c], eax
movzx eax, cl
cmp eax, 0x20
movzx edx, dl
mov dword [esp + 0xa8], edx
mov dword [esp + 0xb4], eax
jg 0x4b0885
cmp edx, 0x20
jg 0x4b0885
mov eax, dword [ebp + 4]
xor esi, esi
cmp word [eax + 0x56], si
mov dword [esp + 0x38], esi
je 0x4aff82
mov eax, dword [ebp + 0x2c]
cmp eax, esi
je 0x4aff72
mov eax, dword [eax + 8]
jmp 0x4aff74
xor eax, eax
push ebx
push eax
call fcn.004a56d0
add esp, 8
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x2c]
xor ebx, ebx
cmp eax, esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x2c], ebx
je 0x4affa2
mov eax, dword [eax + 8]
cmp eax, esi
je 0x4affa2
mov eax, dword [eax + 0x3e4]
jmp 0x4affa4
xor eax, eax
push eax
lea ecx, [esp + 0x70]
push ecx
call fcn.00444d20
mov edx, dword [ebp + 4]
mov eax, dword [edx + 0x1c]
add esp, 8
cmp eax, esi
mov dword [esp + 0x90], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x30], esi
je 0x4b0009
cmp dword [eax + 0xc], esi
jbe 0x4b0009
mov ecx, dword [ebp + 0x2c]
cmp ecx, esi
je 0x4affdc
mov ecx, dword [ecx + 8]
jmp 0x4affde
xor ecx, ecx
cmp dword [ecx + 0x108], esi
jne 0x4b0009
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x34]
push ecx
push esi
push eax
mov ecx, ebp
mov dword [esp + 0x50], edx
call fcn.004a9ec0
mov dword [esp + 0x90], eax
push ebp
mov dword [esp + 0x40], 0x400
mov dword [esp + 0x2c], 0x44800000
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x98], esi
call fcn.004843a0
add esp, 4
test al, al
je 0x4b0074
mov edx, dword [ebp + 0x18]
mov ecx, dword [edx + 0x68]
mov eax, dword [ecx + 0x210]
cmp eax, esi
jne 0x4b0055
call fcn.004ba290
cmp eax, 5
jle 0x4b0074
mov eax, dword [ebp + 0x2c]
cmp eax, esi
je 0x4b0066
mov eax, dword [eax + 8]
jmp 0x4b0068
xor eax, eax
cmp dword [eax + 0x108], esi
jne 0x4b0074
mov al, 1
jmp 0x4b0076
xor al, al
mov ecx, dword [ebp + 4]
cmp word [ecx + 0x56], si
jne 0x4b0182
test al, al
je 0x4b0182
mov eax, ebp
mov edx, 0x200
mov ecx, dword [eax + 4]
cmp dword [ecx + 4], esi
je 0x4b00a3
test dword [eax + 0x54], edx
jne 0x4b0182
cmp word [ecx + 0x56], si
jne 0x4b0182
mov eax, dword [eax + 8]
cmp eax, esi
jne 0x4b0092
mov ecx, ebp
call fcn.004a7580
push eax
lea edx, [esp + 0x17]
push edx
lea eax, [esp + 0xcc]
push eax
lea ecx, [esp + 0xc4]
push ecx
lea edx, [esp + 0xdc]
push edx
call fcn.00445700
mov eax, dword [esp + 0xcc]
add esp, 0x14
cmp eax, esi
jle 0x4b0182
cmp dword [esp + 0xbc], esi
jle 0x4b0182
mov al, byte [esp + 0x13]
test al, al
jne 0x4b0182
push 0x6c
call fcn.00446b60
mov edi, eax
add esp, 4
test edi, edi
je 0x4b0158
mov ecx, dword [esp + 0xbf8]
mov eax, dword [ebp + 4]
mov eax, dword [eax + 0x18]
push ecx
lea edx, [esp + 0x118]
push edx
mov edx, dword [ebp + 0x18]
lea ecx, [esp + 0xd4]
push ecx
push eax
mov eax, dword [edx + 0x68]
mov ecx, dword [eax + 0xd4]
push ebp
push ecx
call fcn.004849a0
add esp, 4
push eax
mov ecx, edi
call fcn.004836d0
mov dword [esp + 0x20], eax
jmp 0x4b0160
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0xbf8]
mov cl, byte [eax + 0x30]
test cl, cl
seta cl
lea edx, [esp + 0x34]
push edx
push ecx
mov ecx, dword [esp + 0x28]
push 0
push 0
call fcn.00484270
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0xd4]
test eax, eax
je 0x4b019e
mov cl, byte [eax + 0xc79]
test cl, cl
jne 0x4b0885
test ebx, ebx
jne 0x4b0457
lea ecx, [esp + 0x48]
call fcn.004b6380
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov al, byte [ecx + edx]
movzx ebx, al
inc ecx
test ebx, ebx
mov dword [esp + 0x4c], ecx
je 0x4b0795
mov eax, ebx
and eax, 8
mov dword [esp + 0x14], eax
je 0x4b022b
mov eax, edx
add eax, ecx
add ecx, 2
mov dword [esp + 0x4c], ecx
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax]
push ecx
mov ecx, edi
call fcn.004b6f30
mov esi, eax
test esi, esi
je 0x4b01fd
cmp dword [esi + 0x78], 3
je 0x4b01fd
xor esi, esi
test esi, esi
mov edi, 0x400
mov dword [esp + 0x3c], edi
mov dword [esp + 0x28], 0x44800000
je 0x4b022f
cmp byte [esi + 0x7e], 0x4b
jne 0x4b022f
mov edi, 0x5000
mov dword [esp + 0x3c], edi
mov dword [esp + 0x28], 0x46a00000
jmp 0x4b022f
mov edi, dword [esp + 0x3c]
mov ecx, ebx
and ecx, 4
jne 0x4b0252
mov eax, dword [ebp + 0x2c]
test eax, eax
je 0x4b0242
mov eax, dword [eax + 8]
jmp 0x4b0244
xor eax, eax
mov edx, dword [eax + 0x108]
test edx, edx
je 0x4b0322
test ecx, ecx
je 0x4b02f0
mov edx, dword [esp + 0xac]
push edx
lea eax, [esp + 0xcc]
push eax
lea ecx, [esp + 0x50]
call fcn.004b6070
mov ecx, dword [esp + 0x20]
test ecx, ecx
mov eax, dword [eax]
mov dword [esp + 0xb0], eax
je 0x4b02f0
mov ecx, dword [esp + 0xbf8]
mov edx, dword [ecx + 0x1c]
add ecx, 0x1c
test edx, edx
mov dword [esp + 0x1c], eax
je 0x4b02ad
push eax
lea edx, [esp + 0xc4]
push edx
call fcn.0047c080
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov al, byte [esp + 0x1f]
cmp al, 0xff
je 0x4b02f0
movzx ecx, byte [esp + 0x1c]
movzx eax, al
inc eax
imul ecx, eax
sar ecx, 8
mov byte [esp + 0x1c], cl
mov edx, dword [esp + 0x1c]
shr edx, 8
movzx edx, dl
imul edx, eax
sar edx, 8
mov byte [esp + 0x1d], dl
mov ecx, dword [esp + 0x1c]
shr ecx, 0x10
movzx ecx, cl
imul ecx, eax
sar ecx, 8
mov byte [esp + 0x1e], cl
mov edx, dword [ebp + 4]
cmp word [edx + 0x56], 0
jne 0x4b0322
mov ecx, dword [esp + 0xbf8]
lea eax, [esp + 0x34]
push eax
push ecx
lea edx, [esp + 0xb8]
push edx
mov ecx, ebp
call fcn.004a9ec0
test eax, eax
mov dword [esp + 0x38], eax
je case.0x4afd60.1
test bl, 1
je 0x4b0349
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
add eax, ecx
add ecx, 2
mov dword [esp + 0x4c], ecx
xor ecx, ecx
mov ch, byte [eax + 1]
movzx eax, byte [eax]
movsx edx, cx
or edx, eax
mov dword [esp + 0x7c], edx
test bl, 2
je 0x4b0374
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
lea eax, [ecx + edx]
add ecx, 2
mov dword [esp + 0x4c], ecx
xor ecx, ecx
mov ch, byte [eax + 1]
movzx eax, byte [eax]
movsx edx, cx
or edx, eax
mov dword [esp + 0x80], edx
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4b0435
mov eax, dword [ebp + 0x2c]
test eax, eax
je 0x4b03f7
mov eax, dword [eax + 8]
test eax, eax
je 0x4b03f7
mov ecx, dword [eax + 0x3e4]
test ecx, ecx
je 0x4b03f7
call fcn.004ce9b0
test al, al
je 0x4b03f7
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
lea eax, [ecx + edx]
add ecx, 2
mov dword [esp + 0x4c], ecx
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax]
mov dword [esp + 0x84], 1
movzx edx, cx
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fld dword [0x68a9c8]
fdiv dword [esp + 0x28]
fmulp st(1)
fstp dword [esp + 0x78]
mov eax, dword [esp + 0x78]
fld dword [esp + 0x78]
mov dword [esp + 0x6c], eax
fmul dword [esp + 0x28]
call fcn.00519000
jmp 0x4b0431
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
lea eax, [ecx + edx]
add ecx, 2
mov dword [esp + 0x4c], ecx
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax]
mov eax, 0x10000
cdq
idiv edi
mov dword [esp + 0x84], 0
imul eax, ecx
mov dword [esp + 0x78], eax
mov dword [esp + 0x6c], eax
imul eax, edi
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov al, byte [ecx + edx]
inc ecx
movzx ebx, al
mov dword [esp + 0x4c], ecx
lea ecx, [esp + 0x48]
mov dword [esp + 0x2c], ebx
call fcn.004b6370
test ebx, ebx
jle 0x4b0795
mov eax, dword [esp + 0xa8]
push eax
lea ecx, [esp + 0x4c]
call fcn.004b63b0
mov ecx, dword [esp + 0xb4]
push ecx
lea ecx, [esp + 0x4c]
mov ebx, eax
call fcn.004b6440
test esi, esi
mov dword [esp + 0x14], eax
je 0x4b0777
mov ax, word [esi + 0x36]
test ax, ax
je 0x4b04aa
movzx edx, ax
cmp ebx, edx
jl 0x4b04aa
mov dword [esp + 0x14], 0
jmp 0x4b0777
lea eax, [esp + 0xf8]
push eax
lea ecx, [esp + 0xd0]
push ecx
lea edx, [esp + 0x74]
push edx
call fcn.00444910
mov eax, dword [esp + 0x3c]
add esp, 0xc
test eax, eax
jbe 0x4b0549
mov ecx, dword [esp + 0x44]
mov edi, eax
mov al, byte [ecx]
dec edi
inc ecx
test al, al
mov dword [esp + 0x30], edi
mov dword [esp + 0x44], ecx
je 0x4b0549
mov ecx, dword [esp + 0x8c]
lea eax, [esp + 0xe8]
push eax
push ecx
push ebx
push esi
mov ecx, ebp
call fcn.004a57b0
test al, al
je 0x4b0549
lea edx, [esp + 0xe8]
push edx
push 0xffffffffffffffe0
call fcn.00445ab0
mov eax, dword [ebp + 0x2c]
add esp, 8
test eax, eax
je 0x4b0520
mov eax, dword [eax + 8]
jmp 0x4b0522
xor eax, eax
push 0
lea ecx, [ebp + 0x4c]
push ecx
push eax
mov eax, dword [esp + 0x9c]
push eax
lea ecx, [esp + 0x108]
push ecx
lea edx, [esp + 0xfc]
push edx
call fcn.004a7160
add esp, 0x18
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4b0676
fild dword [esp + 0x24]
fmul dword [eax + 0x4c]
fcomp dword [0x68fed0]
fnstsw ax
test ah, 0x41
jp 0x4b0676
cmp dword [esp + 0x40], esi
je 0x4b0601
mov al, byte [esi + 0x38]
mov ecx, dword [esi + 0x70]
xor edi, edi
test al, 8
je 0x4b05b2
movzx eax, word [esi + 0x36]
lea eax, [ecx + eax*4]
cmp eax, ecx
jb 0x4b05cf
mov edx, dword [esi + 0x74]
add edx, ecx
cmp eax, edx
ja 0x4b05cf
movzx edx, byte [eax + 1]
xor ecx, ecx
mov ch, byte [eax + 3]
mov cl, byte [eax + 2]
movzx eax, byte [eax]
shl ecx, 8
or ecx, edx
shl ecx, 8
or ecx, eax
jmp 0x4b05cd
movzx edx, word [esi + 0x36]
lea eax, [ecx + edx*2]
cmp eax, ecx
jb 0x4b05cf
mov edx, dword [esi + 0x74]
add edx, ecx
cmp eax, edx
ja 0x4b05cf
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax]
mov edi, ecx
mov edx, dword [ebp + 0x18]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax + 0xd4]
push ecx
call fcn.004849a0
push esi
call fcn.00484a90
mov dword [esp + 0x90], eax
mov eax, dword [esi + 0x70]
add esp, 8
add eax, edi
mov dword [esp + 0x40], esi
mov dword [esp + 0x94], eax
fild dword [esp + 0x7c]
mov edx, dword [esp + 0x94]
mov ecx, dword [esi + 0x70]
lea eax, [edx + ebx*2]
cmp eax, ecx
fstp dword [esp + 0x98]
fild dword [esp + 0x80]
fstp dword [esp + 0x9c]
jb 0x4b0885
mov edx, dword [esi + 0x74]
add edx, ecx
cmp eax, edx
ja 0x4b0885
mov edx, dword [esp + 0x24]
push 0
lea ecx, [esp + 0x9c]
push ecx
push edx
xor edx, edx
mov dx, word [eax]
mov eax, dword [esp + 0x94]
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [ebp + 0x50]
push ebx
push edx
mov edx, dword [esp + 0x58]
push eax
push ecx
mov ecx, dword [esp + 0x40]
push edx
call fcn.00486040
jmp 0x4b0777
mov al, byte [esi + 0x38]
xor edx, edx
test al, 8
je 0x4b06ad
mov ecx, dword [esi + 0x70]
lea eax, [ecx + ebx*4]
cmp eax, ecx
jb 0x4b06cf
mov edi, dword [esi + 0x74]
add edi, ecx
cmp eax, edi
ja 0x4b06cf
movzx ecx, byte [eax + 1]
xor edx, edx
mov dh, byte [eax + 3]
mov dl, byte [eax + 2]
movzx eax, byte [eax]
shl edx, 8
or edx, ecx
shl edx, 8
or edx, eax
jmp 0x4b06c7
mov eax, dword [esi + 0x70]
lea ecx, [eax + ebx*2]
cmp ecx, eax
jb 0x4b06cf
mov edi, dword [esi + 0x74]
add edi, eax
cmp ecx, edi
ja 0x4b06cf
xor edx, edx
mov dh, byte [ecx + 1]
mov dl, byte [ecx]
test edx, edx
jl 0x4b0885
cmp edx, dword [esi + 0x74]
jg 0x4b0885
lea ecx, [esp + 0xf8]
push ecx
push edx
mov edx, dword [esp + 0x20]
push esi
push edx
lea ecx, [esp + 0x140]
call fcn.00426f80
mov ecx, dword [esp + 0x1a8]
mov eax, 1
mov dword [esp + 0xbec], eax
mov dword [esp + 0xbf0], ebp
mov dword [ecx], 0
mov edx, dword [esp + 0x1ac]
mov dword [edx], 0
mov ecx, dword [esp + 0x1ac]
mov word [ecx + 4], 0
mov edx, dword [esp + 0x1a8]
mov ecx, dword [esp + 0x38]
mov dword [edx + 4], ecx
mov edx, dword [esp + 0xc04]
mov dword [esp + 0x1a4], eax
push edx
lea eax, [ebp + 0x7c]
push eax
push 0
lea ecx, [esp + 0x13c]
call fcn.004a8360
mov al, byte [esp + 0x150]
test al, al
lea ecx, [esp + 0x130]
jne 0x4b0880
call fcn.004b6690
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
add edx, ecx
dec eax
mov dword [esp + 0x7c], edx
mov dword [esp + 0x2c], eax
mov ebx, eax
jmp 0x4b0182
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x4b07a3
mov edx, dword [ecx]
push 1
call dword [edx]
lea ecx, [esp + 0x48]
call fcn.004b6380
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbe4
ret 0x10
push edi
push 0
push eax
push esi
lea ecx, [esp + 0x140]
call fcn.00426f80
mov eax, dword [ebp + 0x18]
mov cl, byte [eax + 0x7e]
cmp cl, 0x2e
je 0x4b07e5
cmp cl, 0x54
mov dword [esp + 0xbb8], 0
jne 0x4b07f0
mov dword [esp + 0xbb8], 1
cmp byte [eax + 0x7e], 0x54
setne al
dec al
add edi, 0x1c
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov dword [esp + 0x180], ecx
mov dword [esp + 0x184], edx
and eax, 2
mov byte [esp + 0xbc0], al
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 0x10]
mov dword [esp + 0x188], eax
mov eax, dword [ebp + 4]
mov dword [esp + 0x18c], ecx
mov dword [esp + 0x190], edx
movzx ecx, word [eax + 0x5a]
mov edx, dword [esp + 0xbfc]
mov dword [esp + 0xbf0], ebp
mov dword [esp + 0x194], ecx
add ebp, 0x7c
push ebp
lea ecx, [esp + 0x134]
mov dword [esp + 0xbc8], edx
call fcn.004a8990
mov al, byte [esp + 0x150]
test al, al
lea ecx, [esp + 0x130]
je 0x4afe7a
call fcn.004b6690
mov esi, dword [esp + 0x18]
mov ecx, dword [esi + 0xd4]
push 1
call fcn.004ceb90
mov eax, dword [esi + 0xd4]
mov ecx, dword [eax]
push 0x8e
push 3
push eax
call dword [ecx + 0xe0]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbe4
ret 0x10
mov eax, dword [ebp + 4]
mov ecx, dword [eax + 0x18]
lea edx, [edi + 0x1c]
push edx
call fcn.004a56a0
mov ecx, dword [ebp + 4]
mov eax, dword [ecx + 0x18]
push eax
call fcn.00515920
add esp, 4
test al, al
je case.0x4afd60.1
mov edx, dword [ebp + 4]
mov ecx, dword [edx + 0x18]
push 0
push 0
add edi, 0x30
push edi
push 0
call fcn.00433e90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbe4
ret 0x10
cmp dword [ebx], 0
jne case.0x4afd60.1
mov edi, dword [ebp + 4]
mov ecx, dword [edi + 8]
test ecx, ecx
je case.0x4afd60.1
mov cl, byte [eax + 0xc]
cmp cl, 2
jb 0x4b0a7b
cmp cl, 5
ja 0x4b0a7b
mov ecx, dword [edi + 0x50]
test ecx, ecx
je 0x4b0a7b
mov cx, word [eax + 8]
test cx, cx
jbe 0x4b0a7b
mov esi, dword [eax]
test esi, esi
je 0x4b0a7b
mov edx, dword [eax + 4]
test edx, edx
je 0x4b0a7b
mov ax, word [eax + 0xa]
cmp ax, 0xffff
jne 0x4b096d
movzx eax, word [edi + 0x5a]
jmp 0x4b0970
movzx eax, ax
movzx ecx, cx
cdq
idiv ecx
mov ebx, edx
test ebx, ebx
mov dword [esp + 0x18], ebx
jl 0x4b0a7b
lea eax, [esi + ebx*4]
cmp dword [eax], 0
jne 0x4b099d
dec ebx
sub eax, 4
test ebx, ebx
jge 0x4b0987
mov dword [esp + 0x18], ebx
jmp 0x4b0a7b
test ebx, ebx
mov dword [esp + 0x18], ebx
jl 0x4b0a7b
movzx edx, word [edi + 0x54]
cmp ebx, edx
je 0x4b0a7b
mov esi, ebx
jmp 0x4b09c0
mov ecx, dword [ebp + 4]
movzx eax, word [ecx + 0x54]
lea edi, [esi - 1]
cmp eax, edi
jl 0x4b09d2
cmp ebx, eax
jg 0x4b0a03
mov eax, dword [ebp + 0x18]
mov edx, dword [eax]
mov edx, dword [edx + esi*4]
test edx, edx
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
je 0x4b09fb
test eax, eax
je 0x4b09fb
mov ecx, dword [ecx + 0x50]
mov ebx, dword [ecx]
push eax
push edx
push ebp
call dword [ebx + 0x10]
test al, al
mov ebx, dword [esp + 0x18]
jne 0x4b0a38
mov esi, edi
test esi, esi
jge 0x4b09c0
jmp 0x4b0a7b
mov ecx, dword [ebp + 4]
movzx esi, word [ecx + 0x54]
mov eax, dword [ebp + 0x18]
movzx ecx, word [eax + 8]
inc esi
cmp esi, ecx
jge 0x4b0a36
mov edx, dword [eax]
lea eax, [edx + esi*4]
jmp 0x4b0a20
cmp dword [eax], 0
jne 0x4b0a34
mov edx, dword [ebp + 0x18]
movzx edx, word [edx + 8]
inc esi
add eax, 4
cmp esi, edx
jl 0x4b0a20
cmp esi, ecx
je 0x4b0a7b
test esi, esi
jl 0x4b0a7b
cmp esi, ebx
jg 0x4b0a69
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx + esi*4]
test edx, edx
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
je 0x4b0a64
test eax, eax
je 0x4b0a64
mov ecx, dword [ebp + 4]
mov ecx, dword [ecx + 0x50]
mov edi, dword [ecx]
push eax
push edx
push ebp
call dword [edi + 0xc]
inc esi
cmp esi, ebx
jle 0x4b0a40
push ebx
mov ecx, ebp
call fcn.004ae900
mov edx, dword [ebp + 4]
mov eax, dword [edx + 8]
mov byte [eax + 0x28], 0
mov ecx, dword [ebp + 4]
mov esi, dword [ecx + 8]
mov ecx, esi
mov dword [esp + 0x14], esi
call fcn.00446190
test al, al
jne 0x4b0a9a
cmp dword [esi + 0xc], 6
jne case.0x4afd60.1
cmp byte [esi + 0x28], 1
je case.0x4afd60.1
push 0x50
call fcn.00446b60
mov esi, eax
add esp, 4
test esi, esi
je case.0x4afd60.1
mov ecx, ebp
call fcn.004a7d50
push eax
mov ecx, esi
call fcn.00472a10
mov ebx, eax
xor esi, esi
cmp ebx, esi
je case.0x4afd60.1
mov edx, dword [ebp + 4]
mov dword [ebp + 0x50], ebx
cmp word [edx + 0x56], si
mov ecx, ebx
je 0x4b0aed
push 5
call fcn.00472b40
jmp 0x4b0c28
push 1
call fcn.00472b40
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov dword [esp + 0x9c], ecx
push 1
mov ecx, ebx
mov dword [esp + 0xa4], esi
mov dword [esp + 0x9c], esi
mov dword [esp + 0xa8], edx
call fcn.00472b40
mov eax, dword [ebp + 0x2c]
cmp eax, esi
je 0x4b0b39
mov eax, dword [eax + 8]
cmp eax, esi
je 0x4b0b39
mov eax, dword [eax + 0x3e4]
jmp 0x4b0b3b
xor eax, eax
mov ecx, dword [ebp + 0x18]
push eax
mov eax, dword [ebx + 0x4c]
add eax, 8
push eax
add ecx, 0x4c
push ecx
lea edx, [esp + 0xa4]
push edx
call fcn.00445130
mov esi, dword [ebx + 0x4c]
add esi, 8
mov ecx, 7
lea edi, [esp + 0x108]
rep movsd dword es:[edi], dword [esi]
add esp, 0x10
mov ecx, ebp
call fcn.004a7d50
mov ecx, dword [ebp + 0x2c]
test ecx, ecx
mov eax, dword [eax + 0x38]
je 0x4b0b84
mov ecx, dword [ecx + 8]
jmp 0x4b0b86
xor ecx, ecx
mov ecx, dword [ecx + 0x3e4]
mov edx, dword [ebx + 0x4c]
mov edi, dword [esp + 0xbf8]
push ecx
add edx, 0x24
push edx
push eax
lea eax, [esp + 0x104]
push eax
push edi
call fcn.004a59f0
mov ecx, dword [ebx + 0x4c]
mov esi, dword [esp + 0x28]
mov dword [ecx + 4], esi
mov edx, dword [ebx + 0x4c]
mov word [edx], 0x41
mov eax, dword [ebp + 0x18]
mov cl, byte [eax + 0xd]
add esp, 0x14
test cl, 1
jne 0x4b0bd0
mov eax, dword [ebx + 0x4c]
or byte [eax], 2
mov edx, dword [ebx + 0x4c]
lea ecx, [edi + 0x1c]
add edx, 0x40
mov eax, ecx
mov edi, dword [eax]
mov dword [edx], edi
mov edi, dword [eax + 4]
mov dword [edx + 4], edi
mov edi, dword [eax + 8]
mov dword [edx + 8], edi
mov edi, dword [eax + 0xc]
mov dword [edx + 0xc], edi
mov eax, dword [eax + 0x10]
mov dword [edx + 0x10], eax
call fcn.0044c820
mov dl, byte [esi + 0x20]
test eax, eax
mov eax, dword [ebx + 0x4c]
setne cl
or cl, dl
mov byte [ebx + 0x2c], cl
cmp dword [eax + 0x3c], 1
jne 0x4b0c1e
add eax, 0x24
push eax
call fcn.00444160
add esp, 4
mov edx, dword [ebx + 0x4c]
mov dword [edx + 0x3c], 2
mov ecx, ebx
call fcn.00480600
mov eax, dword [ebp + 0x2c]
test eax, eax
je 0x4b0c3b
mov ecx, dword [eax + 8]
jmp 0x4b0c3d
xor ecx, ecx
push 0
lea eax, [ebp + 0x4c]
push eax
mov eax, dword [esp + 0xc00]
push ecx
mov ecx, dword [ebp + 0x18]
push ebx
push eax
add ecx, 0x4c
push ecx
call fcn.004a7160
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbe4
ret 0x10
mov edx, dword [eax]
mov eax, dword [edx]
test eax, eax
je case.0x4afd60.1
mov ecx, dword [eax + 0x34]
test ecx, ecx
je case.0x4afd60.1
push 0x50
call fcn.00446b60
mov esi, eax
add esp, 4
test esi, esi
je case.0x4afd60.1
mov ecx, ebp
call fcn.004a7d50
push eax
mov ecx, esi
call fcn.00472a10
mov ebx, eax
test ebx, ebx
je case.0x4afd60.1
mov eax, dword [ebp + 4]
mov dword [ebp + 0x50], ebx
cmp word [eax + 0x56], 0
mov ecx, ebx
je 0x4b0cc8
push 5
call fcn.00472b40
jmp 0x4b0f6a
push 1
call fcn.00472b40
mov ecx, ebp
call fcn.004a7d50
mov edi, dword [eax + 0x38]
mov esi, dword [esp + 0xbf8]
push esi
mov dword [esp + 0x18], edi
call fcn.004452b0
add esp, 4
test eax, eax
je 0x4b0d60
fild dword [esp + 0x14]
sub esp, 0x10
fmul qword [0x68b040]
fstp qword [esp + 0xa8]
fld qword [0x68e490]
fstp qword [esp + 8]
fld qword [esp + 0xa8]
fstp qword [esp]
push esi
call fcn.00443fe0
push ecx
fstp qword [esp]
call fcn.00443630
add esp, 0x18
test eax, eax
je 0x4b0d60
fld qword [0x68e490]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [esp + 0xa8]
fstp qword [esp]
push esi
call fcn.00444040
push ecx
fstp qword [esp]
call fcn.00443630
add esp, 0x18
test eax, eax
je 0x4b0d60
mov cl, 1
jmp 0x4b0d62
xor cl, cl
cmp edi, 1
mov byte [esp + 0x13], cl
jle 0x4b0da5
mov edx, dword [ebp + 0x18]
mov eax, dword [edx]
mov eax, dword [eax + 0x18]
dec eax
je 0x4b0d81
dec eax
jne 0x4b0da5
test cl, cl
je 0x4b0e86
mov ecx, dword [esi + 0x10]
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add ecx, eax
lea edx, [edi - 1]
not edx
and ecx, edx
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x14]
add ecx, eax
and ecx, edx
mov dword [esi + 0x14], ecx
mov cl, byte [esp + 0x13]
test cl, cl
je 0x4b0e86
mov eax, dword [ebp + 0x2c]
test eax, eax
je 0x4b0dc3
mov eax, dword [eax + 8]
test eax, eax
je 0x4b0dc3
mov eax, dword [eax + 0x3e4]
jmp 0x4b0dc5
xor eax, eax
push eax
lea edx, [esp + 0x70]
push edx
call fcn.00444d20
mov eax, dword [esi + 0x10]
cdq
idiv edi
add esp, 8
shl eax, 0x10
mov dword [esp + 0x7c], eax
mov eax, dword [esi + 0x14]
cdq
idiv edi
shl eax, 0x10
mov dword [esp + 0x80], eax
mov eax, dword [ebp + 0x2c]
test eax, eax
je 0x4b0e06
mov eax, dword [eax + 8]
test eax, eax
je 0x4b0e06
mov eax, dword [eax + 0x3e4]
jmp 0x4b0e08
xor eax, eax
push eax
mov eax, dword [ebx + 0x4c]
add eax, 0x24
push eax
lea ecx, [esp + 0x74]
push ecx
call fcn.00445dc0
mov eax, dword [ebx + 0x4c]
mov ecx, dword [eax + 0x3c]
add esp, 0xc
cmp ecx, 1
jne 0x4b0e34
add eax, 0x24
push eax
call fcn.00444160
add esp, 4
mov edx, dword [ebx + 0x4c]
mov dword [edx + 0x3c], 2
mov eax, dword [ebp + 0x2c]
test eax, eax
je 0x4b0e4a
mov eax, dword [eax + 8]
jmp 0x4b0e4c
xor eax, eax
mov ecx, dword [eax + 0x108]
test ecx, ecx
je 0x4b0efc
mov edi, dword [ebx + 0x4c]
add edi, 8
mov ecx, 7
lea esi, [esp + 0x6c]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0x4c]
cmp dword [eax + 0x20], 1
jne 0x4b0efc
add eax, 8
push eax
call fcn.00444160
add esp, 4
jmp 0x4b0efc
lea eax, [esp + 0x6c]
push eax
push 0x140000
push 0x140000
call fcn.00444e60
mov eax, dword [ebp + 0x2c]
add esp, 0xc
test eax, eax
je 0x4b0ea9
mov eax, dword [eax + 8]
jmp 0x4b0eab
xor eax, eax
mov ecx, dword [eax + 0x108]
test ecx, ecx
je 0x4b0ed1
mov edi, dword [ebx + 0x4c]
add edi, 8
mov ecx, 7
lea esi, [esp + 0x6c]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0xbf8]
mov edi, dword [esp + 0x14]
mov eax, dword [ebp + 0x2c]
test eax, eax
je 0x4b0edd
mov eax, dword [eax + 8]
jmp 0x4b0edf
xor eax, eax
mov ecx, dword [eax + 0x3e4]
mov edx, dword [ebx + 0x4c]
push ecx
add edx, 0x24
push edx
push edi
lea eax, [esp + 0x78]
push eax
push esi
call fcn.004a59f0
add esp, 0x14
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx]
mov ecx, dword [edx]
mov eax, dword [ebx + 0x4c]
mov dword [eax + 4], ecx
mov edx, dword [ebx + 0x4c]
mov word [edx], 0x41
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax]
mov al, byte [ecx + 0x1c]
test al, al
jne 0x4b0f23
mov eax, dword [ebx + 0x4c]
or byte [eax], 2
mov edx, dword [ebx + 0x4c]
mov ecx, dword [esp + 0xbf8]
add ecx, 0x1c
add edx, 0x40
mov eax, ecx
mov esi, dword [eax]
mov dword [edx], esi
mov esi, dword [eax + 4]
mov dword [edx + 4], esi
mov esi, dword [eax + 8]
mov dword [edx + 8], esi
mov esi, dword [eax + 0xc]
mov dword [edx + 0xc], esi
mov eax, dword [eax + 0x10]
mov dword [edx + 0x10], eax
call fcn.0044c820
mov edx, dword [ebp + 0x18]
test eax, eax
mov eax, dword [edx]
mov edx, dword [eax]
mov al, byte [edx + 0x20]
setne cl
or cl, al
mov byte [ebx + 0x2c], cl
mov ecx, ebx
call fcn.00480600
mov eax, dword [ebp + 0x2c]
test eax, eax
je 0x4b0f7d
mov eax, dword [eax + 8]
jmp 0x4b0f7f
xor eax, eax
push 0
lea ecx, [ebp + 0x4c]
push ecx
mov ecx, dword [ebp + 0x18]
push eax
mov eax, dword [esp + 0xc04]
push ebx
push eax
add ecx, 0x4c
push ecx
call fcn.004a7160
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbe4
ret 0x10
mov edx, dword [ebp + 4]
mov ecx, dword [edx + 0x28]
test ecx, ecx
je case.0x4afd60.1
mov ebx, dword [esp + 0xc04]
mov eax, dword [esp + 0xbfc]
test ebx, ebx
setne dl
push eax
push edx
push edi
call fcn.004ad500
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbe4
ret 0x10