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

Disassembly:
push 0xffffffffffffffff
push 0x52d92b
mov eax, dword fs:[0]
push eax
sub esp, 0x4a0
push ebx
push ebp
push esi
push edi
mov eax, dword [0x568fd0]
xor eax, esp
push eax
lea eax, [esp + 0x4b4]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x4d8]
mov esi, dword [esp + 0x4d4]
mov ebx, dword [esp + 0x4cc]
test ebp, ebp
je 0x4b73b9
mov eax, dword [esp + 0x4c8]
mov eax, dword [eax + 0x2c8]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 0x18]
add eax, 4
push ebx
push eax
call edx
mov edi, eax
mov eax, dword [esp + 0x4c8]
mov eax, dword [eax + 0x2c8]
mov ecx, dword [eax + 4]
add eax, 4
lea edx, [ebx + 1]
push edx
push eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x30], edi
call eax
mov ecx, dword [ebp + 0x14]
add ecx, edi
cmp eax, ecx
mov dword [esp + 0x24], eax
jle 0x4b630a
mov eax, ecx
mov dword [esp + 0x24], ecx
cmp dword [ebp + 0x20], 1
jne 0x4b64ce
sub eax, edi
cmp byte [esi + 0x770], 0
mov dword [esp + 0x20], eax
jne 0x4b6343
mov edx, dword [esp + 0x4c8]
mov eax, dword [edx + 0x2c8]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 0x54]
add eax, 4
push ebx
push eax
call edx
sub eax, edi
mov dword [esp + 0x20], eax
cmp eax, dword [ebp + 0x18]
jne 0x4b64c7
xor ebx, ebx
mov byte [esp + 0x15], 1
mov byte [esp + 0x16], 0
test eax, eax
jle 0x4b64ae
mov edi, dword [esp + 0x4c8]
mov eax, dword [edi + 0x2c8]
mov ecx, dword [esp + 0x28]
add eax, 0x10
add ecx, ebx
cmp ecx, dword [eax + 0xc]
jge 0x4b6391
test ecx, ecx
jge 0x4b6386
mov byte [esp + 0x17], 0
jmp 0x4b63ab
mov edx, dword [eax]
mov al, byte [ecx + edx]
mov byte [esp + 0x17], al
jmp 0x4b63ab
cmp ecx, dword [eax + 8]
jl 0x4b639d
mov byte [esp + 0x17], 0
jmp 0x4b63ab
mov edx, dword [eax + 0x10]
mov eax, dword [eax]
add edx, ecx
mov dl, byte [edx + eax]
mov byte [esp + 0x17], dl
mov eax, dword [edi + 0x2c8]
mov edx, dword [eax + 4]
add eax, 4
push ecx
push eax
mov eax, dword [edx + 0x10]
call eax
cmp byte [esp + 0x15], 0
mov byte [esp + 0x16], al
je 0x4b63d8
mov ecx, dword [ebp + 0x34]
mov dl, al
mov byte [esp + 0x15], 1
cmp byte [ebx + ecx], dl
je 0x4b63dd
mov byte [esp + 0x15], 0
mov eax, dword [ebp + 0x34]
movzx edi, byte [eax + ebx]
mov ecx, dword [esi + 0x48]
sub ecx, dword [esi + 0x44]
mov eax, 0x38e38e39
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp edi, ecx
jb 0x4b6404
call fcn.00501daa
mov eax, dword [esi + 0x44]
lea edx, [edi + edi*8]
cmp dword [eax + edx*8 + 0x38], 0
jne 0x4b6424
cmp byte [esp + 0x15], 0
je 0x4b6497
mov ecx, dword [ebp + 0x30]
mov dl, byte [esp + 0x17]
cmp byte [ebx + ecx], dl
jmp 0x4b6490
mov eax, dword [ebp + 0x34]
movzx edi, byte [eax + ebx]
mov ecx, dword [esi + 0x48]
sub ecx, dword [esi + 0x44]
mov eax, 0x38e38e39
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp edi, ecx
jb 0x4b644b
call fcn.00501daa
mov eax, dword [esi + 0x44]
lea edx, [edi + edi*8]
cmp dword [eax + edx*8 + 0x38], 2
jne 0x4b6475
cmp byte [esp + 0x15], 0
je 0x4b6497
movsx ecx, byte [esp + 0x17]
push ecx
call fcn.00506219
mov edx, dword [ebp + 0x30]
add esp, 4
cmp byte [ebx + edx], al
jmp 0x4b6490
cmp byte [esp + 0x15], 0
je 0x4b6497
movsx eax, byte [esp + 0x17]
push eax
call fcn.00509738
mov ecx, dword [ebp + 0x30]
add esp, 4
cmp byte [ebx + ecx], al
mov byte [esp + 0x15], 1
je 0x4b649c
mov byte [esp + 0x15], 0
inc ebx
cmp ebx, dword [esp + 0x20]
jl 0x4b6360
cmp byte [esp + 0x15], 0
je 0x4b64c7
mov edx, dword [ebp + 0x34]
movzx eax, byte [edx + ebx]
movsx ecx, byte [esp + 0x16]
cmp eax, ecx
jne 0x4b64c7
mov dword [ebp + 0x20], 2
jmp 0x4b64ce
mov dword [ebp + 0x20], 0
cmp dword [ebp + 0x20], 0
jne 0x4b6a20
mov dword [ebp + 0x48], 0x7ffffff
mov dword [ebp + 0x4c], 1
cmp dword [esi + 0x78c], 2
jne 0x4b6521
mov edx, dword [esi + 0x7c4]
mov ecx, dword [esp + 0x4c8]
mov eax, dword [esp + 0x4cc]
mov edi, dword [ecx + 0x2c8]
push edx
call fcn.0049f150
mov ebx, dword [esp + 0x28]
cmp eax, ebx
mov dword [ebp + 0x2c], eax
jl 0x4b652c
sub eax, ebx
mov dword [ebp + 0x2c], eax
jmp 0x4b652c
mov ebx, dword [esp + 0x28]
mov dword [ebp + 0x2c], 0xffffffff
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x4c8]
mov eax, dword [edx + 0x2c8]
mov edx, dword [ebp + 0x30]
mov ecx, dword [eax + 4]
sub edi, ebx
push edi
add eax, 4
push ebx
push edx
push eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x34], edi
call eax
mov edx, dword [esp + 0x4c8]
mov ecx, dword [ebp + 0x34]
mov eax, dword [edx + 0x2c8]
test edi, edi
jl 0x4b658d
test ebx, ebx
jl 0x4b658d
mov edx, dword [eax + 0x30]
mov dword [esp + 0x20], edx
lea edx, [edi + ebx]
cmp edx, dword [esp + 0x20]
jg 0x4b658d
mov ebx, dword [esp + 0x28]
add eax, 0x28
push ecx
push eax
mov eax, edi
call fcn.004a6850
mov eax, dword [esp + 0x4c8]
mov eax, dword [eax + 0x2c8]
mov edx, dword [esp + 0x4cc]
mov ecx, dword [eax + 4]
add eax, 4
push edx
push eax
mov eax, dword [ecx + 0x54]
call eax
sub eax, ebx
cmp byte [esi + 0x770], 0
mov dword [esp + 0x34], eax
je 0x4b65c5
mov eax, edi
mov dword [esp + 0x2c], edi
jmp 0x4b65c9
mov dword [esp + 0x2c], eax
xor ecx, ecx
test eax, eax
jle 0x4b65d5
nop
inc ecx
cmp ecx, eax
jl 0x4b65d0
test edi, edi
jle 0x4b65e6
mov ecx, dword [ebp + 0x34]
mov dl, byte [ecx + edi - 1]
mov byte [esp + 0x17], dl
jmp 0x4b65eb
mov byte [esp + 0x17], 0
cmp byte [esi + 0x799], 0
je 0x4b66a4
xor ebx, ebx
test edi, edi
jle 0x4b66a4
mov eax, dword [ebp + 0x30]
mov cl, byte [ebx + eax]
mov edx, dword [ebp + 0x34]
movzx edi, byte [edx + ebx]
mov byte [esp + 0x16], cl
mov ecx, dword [esi + 0x48]
sub ecx, dword [esi + 0x44]
mov eax, 0x38e38e39
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x4b6633
call fcn.00501daa
mov edx, dword [esi + 0x44]
lea ecx, [edi + edi*8]
cmp dword [edx + ecx*8 + 0x38], 1
jne 0x4b664d
movsx eax, byte [esp + 0x16]
push eax
call fcn.00509738
jmp 0x4b668c
mov ecx, dword [esi + 0x48]
mov edx, dword [ebp + 0x34]
sub ecx, dword [esi + 0x44]
movzx edi, byte [edx + ebx]
mov eax, 0x38e38e39
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x4b6674
call fcn.00501daa
mov edx, dword [esi + 0x44]
lea ecx, [edi + edi*8]
cmp dword [edx + ecx*8 + 0x38], 2
jne 0x4b6695
movsx eax, byte [esp + 0x16]
push eax
call fcn.00506219
mov ecx, dword [ebp + 0x30]
mov byte [ebx + ecx], al
add esp, 4
inc ebx
cmp ebx, dword [esp + 0x24]
jl 0x4b6602
mov eax, dword [esp + 0x2c]
mov edx, dword [ebp + 0x30]
fldz
xor esi, esi
mov dword [ebp + 0x24], esi
mov byte [eax + edx], 0
mov ecx, dword [ebp + 0x34]
mov dl, byte [esp + 0x17]
mov byte [eax + ecx], dl
mov ecx, dword [ebp + 0x38]
push eax
fstp dword [ecx]
mov eax, dword [esp + 0x4cc]
xor ecx, ecx
push ecx
lea edx, [eax + 0x10]
push edx
mov edx, dword [esp + 0x34]
push esi
push esi
push esi
push ebp
lea ecx, [esp + 0x80]
push ecx
mov ecx, dword [eax + 0x2c8]
mov byte [esp + 0x36], 0
call fcn.004acff0
mov dword [esp + 0x4bc], esi
xor edi, edi
cmp dword [esp + 0x98], edi
jge 0x4b6710
mov edx, dword [esp + 0x74]
cmp edx, dword [esp + 0x6c]
jge 0x4b69a8
lea eax, [esp + 0x4c]
push eax
lea esi, [esp + 0x68]
call fcn.004ad200
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov eax, dword [ebp + 0x38]
add ecx, edi
lea edx, [edi*4]
mov dword [esp + 0x24], ecx
lea ecx, [eax + ecx*4 + 4]
lea eax, [edx + eax + 4]
mov dword [esp + 0x18], edx
cmp eax, ecx
je 0x4b6752
fldz
add eax, 4
fstp dword [eax - 4]
cmp eax, ecx
jne 0x4b6746
mov esi, dword [esp + 0x4d4]
mov ecx, dword [esi + 0x48]
mov edx, dword [ebp + 0x34]
sub ecx, dword [esi + 0x44]
movzx ebx, byte [edx + edi]
mov eax, 0x38e38e39
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4b6780
call fcn.00501daa
mov edx, dword [esi + 0x44]
lea ecx, [ebx + ebx*8]
cmp byte [edx + ecx*8 + 0x3c], 0
je 0x4b6978
mov ebx, dword [esp + 0x54]
test ebx, ebx
je 0x4b689b
mov eax, dword [ebp + 0x30]
fld dword [esi + 0x6b4]
cmp byte [edi + eax], 9
fstp dword [esp + 0x1c]
jne 0x4b680a
mov ecx, dword [ebp + 0x38]
mov edx, dword [esp + 0x18]
fld dword [ecx + edx]
call fcn.00505040
fld dword [esi + 0x674]
mov ebx, eax
call fcn.00505040
mov esi, eax
mov eax, dword [esp + 0x4c4]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x4b67ec
mov ecx, dword [esp + 0x4cc]
call fcn.004c1bd0
test eax, eax
jg 0x4b67f6
lea eax, [ebx + 2]
cdq
idiv esi
inc eax
imul eax, esi
mov ecx, dword [ebp + 0x38]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fsub dword [ecx + edx]
jmp 0x4b686a
fldz
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 1
jne 0x4b686e
cmp dword [ebx + 0x18], 0x10
mov ecx, dword [ebx + 0x14]
jb 0x4b6825
mov eax, dword [ebx + 4]
jmp 0x4b6828
lea eax, [ebx + 4]
mov edx, dword [esp + 0x4c8]
mov edx, dword [edx + 0x2c8]
push edx
lea edx, [esp + 0xb0]
push edx
push ecx
mov ecx, dword [esp + 0x4d0]
push eax
mov eax, dword [esp + 0x4e0]
push 0x24
push esi
push eax
add ecx, 0x5c
call fcn.004ad6f0
mov ecx, dword [ebx + 0x14]
fld dword [esp + ecx*4 + 0xa8]
fiadd dword [esi + 0x7cc]
fstp dword [esp + 0x1c]
cmp dword [esp + 0x50], 0
jle 0x4b6973
mov eax, dword [esp + 0x18]
fld dword [esp + 0x1c]
mov ecx, dword [esp + 0x50]
mov edx, dword [ebp + 0x38]
fst dword [eax + edx + 4]
add eax, 4
sub ecx, 1
jne 0x4b6885
fstp st(0)
jmp 0x4b6973
mov eax, dword [esp + 0x50]
cmp eax, 1
jne 0x4b68eb
mov ecx, dword [ebp + 0x30]
cmp byte [edi + ecx], 0x20
jne 0x4b68eb
mov ecx, dword [esi + 0x48]
mov edx, dword [ebp + 0x34]
sub ecx, dword [esi + 0x44]
movzx ebx, byte [edx + edi]
mov eax, 0x38e38e39
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4b68d4
call fcn.00501daa
mov edx, dword [esi + 0x44]
mov eax, dword [ebp + 0x38]
lea ecx, [ebx + ebx*8]
fld dword [edx + ecx*8 + 0x24]
mov ecx, dword [esp + 0x18]
fstp dword [eax + ecx + 4]
jmp 0x4b692c
mov edx, dword [esp + 0x4c8]
mov ecx, dword [edx + 0x2c8]
mov edx, dword [ebp + 0x38]
push ecx
mov ecx, dword [esp + 0x1c]
lea edx, [edx + ecx + 4]
mov ecx, dword [ebp + 0x34]
push edx
movzx edx, byte [ecx + edi]
mov ecx, dword [esp + 0x4cc]
push eax
mov eax, dword [ebp + 0x30]
add eax, edi
push eax
mov eax, dword [esp + 0x4e0]
push edx
push esi
push eax
add ecx, 0x5c
call fcn.004ad6f0
mov ecx, dword [ebp + 0x30]
add ecx, dword [esp + 0x50]
cmp byte [ecx + edi - 1], 0x20
je 0x4b6973
mov ecx, dword [esi + 0x48]
mov edx, dword [ebp + 0x34]
sub ecx, dword [esi + 0x44]
movzx ebx, byte [edx + edi]
mov eax, 0x38e38e39
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4b6961
call fcn.00501daa
mov edx, dword [esi + 0x44]
lea ecx, [ebx + ebx*8]
cmp byte [edx + ecx*8 + 8], 0
mov byte [esp + 0x16], 1
jne 0x4b6978
mov byte [esp + 0x16], 0
lea eax, [edi + 1]
cmp eax, dword [esp + 0x24]
jg 0x4b66f7
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
lea ecx, [ecx]
mov ecx, dword [ebp + 0x38]
fld dword [esi + ecx]
inc eax
cmp eax, edx
fadd dword [ecx + eax*4 - 4]
fstp dword [ecx + eax*4 - 4]
jle 0x4b6990
jmp 0x4b66f7
cmp byte [esp + 0x16], 0
mov esi, dword [esp + 0x4d4]
je 0x4b69ca
mov eax, dword [ebp + 0x38]
fild dword [esi + 0x7d0]
mov ecx, dword [esp + 0x2c]
lea eax, [eax + ecx*4]
fadd dword [eax]
fstp dword [eax]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
mov dword [ebp + 0x1c], eax
mov dword [esp + 0x4bc], 0xffffffff
mov eax, dword [esp + 0x84]
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x20], 2
cmp eax, edi
je 0x4b69fe
push eax
call fcn.00501b8f
add esp, 4
mov ecx, dword [esp + 0x78]
push ecx
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], edi
mov dword [esp + 0x90], edi
call fcn.00501b8f
add esp, 4
mov eax, dword [esp + 0x4dc]
cmp eax, 0x14
jge 0x4b6a38
mov eax, 0x14
mov dword [esp + 0x4dc], eax
cmp dword [ebp + 0x20], 2
je 0x4b6a47
cmp dword [ebp + 0x48], eax
je 0x4b73b9
mov dword [ebp + 0x48], eax
cmp eax, 0x7ffffff
je 0x4b6a6a
fild dword [esp + 0x4dc]
mov ebx, dword [ebp + 0x18]
mov edi, dword [ebp + 0x38]
fld dword [edi + ebx*4]
fcompp
fnstsw ax
test ah, 5
jp 0x4b6a76
mov dword [ebp + 0x4c], 1
jmp 0x4b73b2
test byte [esi + 0x7d8], 1
je 0x4b6a91
fld dword [esi + 0x66c]
call fcn.00505040
sub dword [esp + 0x4dc], eax
fldz
mov eax, dword [esi + 0x7e4]
fstp dword [esp + 0x24]
cmp eax, 2
jne 0x4b6abd
mov edx, dword [esp + 0x4c8]
mov eax, dword [edx + 0x2c8]
fild dword [eax + 0x1fc]
fmul dword [esi + 0x670]
jmp 0x4b6acd
test eax, eax
jne 0x4b6ad1
fild dword [esi + 0x7e0]
fmul dword [esi + 0x66c]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fst dword [ebp + 0x50]
cmp dword [esi + 0x7e4], 0
je 0x4b6b08
xor eax, eax
test ebx, ebx
jle 0x4b6b08
mov edx, dword [ebp + 0x30]
movsx ecx, byte [edx + eax]
cmp ecx, 0x20
je 0x4b6af8
cmp ecx, 9
jne 0x4b6b00
inc eax
cmp eax, dword [ebp + 0x18]
jge 0x4b6b08
jmp 0x4b6aea
fld dword [edi + eax*4]
fadd st(1)
fstp dword [ebp + 0x50]
fld dword [ebp + 0x50]
lea edi, [esi + 0x66c]
fld dword [edi]
call fcn.00505040
mov ecx, eax
shl ecx, 4
sub ecx, eax
mov eax, dword [esp + 0x4dc]
sub eax, ecx
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fcompp
fnstsw ax
test ah, 5
jp 0x4b6b3e
fstp dword [ebp + 0x50]
jmp 0x4b6b40
fstp st(0)
test byte [esi + 0x7d8], 2
je 0x4b6b5c
fld dword [ebp + 0x50]
fld dword [edi]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4b6b5c
fld dword [edi]
fstp dword [ebp + 0x50]
fldz
xor eax, eax
cmp ebx, eax
fstp qword [esp + 0x5c]
mov dword [ebp + 0x4c], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], eax
jle 0x4b73a6
fild dword [esp + 0x4dc]
mov ebx, dword [esp + 0x4d8]
mov edi, eax
mov esi, eax
fstp qword [esp + 0x4c]
mov edx, dword [ebx + 0x38]
fld dword [edx + esi*4 + 4]
fsub qword [esp + 0x5c]
fcomp qword [esp + 0x4c]
fnstsw ax
test ah, 1
jne 0x4b6f5b
cmp edi, dword [esp + 0x20]
jne 0x4b6f33
test esi, esi
jle 0x4b6d73
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x4c8]
lea ebp, [esi + eax]
mov esi, dword [ecx + 0x2c8]
test ebp, ebp
jg 0x4b6bdc
xor ebp, ebp
jmp 0x4b6d69
mov edx, dword [esi + 4]
mov eax, dword [edx + 8]
lea edi, [esi + 4]
push edi
call eax
cmp ebp, eax
jl 0x4b6bfb
mov ecx, dword [edi]
mov edx, dword [ecx + 8]
push edi
call edx
mov ebp, eax
jmp 0x4b6d69
lea edi, [ebp - 1]
mov dword [esp + 0x18], edi
call fcn.0049d7d0
test al, al
je 0x4b6c12
mov ebp, edi
jmp 0x4b6d69
mov eax, dword [esi + 0x1ec]
test eax, eax
je 0x4b6d62
cmp eax, 0xfde9
jne 0x4b6c80
cmp ebp, dword [esi + 0x1c]
jge 0x4b6c34
mov eax, dword [esi + 0x10]
mov al, byte [eax + ebp]
jmp 0x4b6c46
cmp ebp, dword [esi + 0x18]
jl 0x4b6c3d
xor al, al
jmp 0x4b6c46
mov ecx, dword [esi + 0x20]
add ecx, dword [esi + 0x10]
mov al, byte [ecx + ebp]
movzx eax, al
add eax, 0xffffff80
cmp eax, 0x3f
ja 0x4b6d62
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x1c]
push eax
push ebp
mov edi, esi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
call fcn.0049d8f0
test al, al
je 0x4b6d62
mov ebp, dword [esp + 0x18]
jmp 0x4b6d62
mov edi, dword [esi + 4]
mov ecx, dword [edi + 0x14]
lea ebx, [esi + 4]
push ebp
push ebx
call ecx
mov edx, dword [edi + 0x18]
push eax
push ebx
call edx
mov dword [esp + 0x1c], eax
cmp ebp, eax
je 0x4b6d62
mov ebx, ebp
jle 0x4b6d62
mov edi, dword [esp + 0x18]
cmp edi, dword [esi + 0x1c]
jge 0x4b6cc4
test edi, edi
jge 0x4b6cbc
mov byte [esp + 0x2c], 0
jmp 0x4b6cdf
mov eax, dword [esi + 0x10]
mov cl, byte [edi + eax]
jmp 0x4b6cdb
cmp edi, dword [esi + 0x18]
jl 0x4b6cd0
mov byte [esp + 0x2c], 0
jmp 0x4b6cdf
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x10]
add edx, edi
mov cl, byte [edx + eax]
mov byte [esp + 0x2c], cl
mov ecx, dword [esp + 0x2c]
mov edx, dword [esi + 4]
mov edx, dword [edx + 0x48]
lea eax, [esi + 4]
push ecx
push eax
call edx
test al, al
je 0x4b6cfc
dec ebx
dec edi
cmp ebx, dword [esp + 0x1c]
jg 0x4b6cac
cmp ebx, ebp
jge 0x4b6d62
cmp ebx, dword [esi + 0x1c]
jge 0x4b6d1c
test ebx, ebx
jge 0x4b6d10
mov byte [esp + 0x48], 0
jmp 0x4b6d35
mov eax, dword [esi + 0x10]
mov cl, byte [ebx + eax]
mov byte [esp + 0x48], cl
jmp 0x4b6d35
cmp ebx, dword [esi + 0x18]
jl 0x4b6d28
mov byte [esp + 0x48], 0
jmp 0x4b6d35
mov edx, dword [esi + 0x20]
add edx, dword [esi + 0x10]
mov al, byte [edx + ebx]
mov byte [esp + 0x48], al
mov edx, dword [esp + 0x48]
mov ecx, dword [esi + 4]
lea eax, [esi + 4]
push edx
push eax
mov eax, dword [ecx + 0x48]
call eax
xor ecx, ecx
test al, al
setne cl
inc ecx
mov eax, ecx
add eax, ebx
cmp eax, ebp
je 0x4b6d62
jg 0x4b6d60
mov ebx, eax
cmp ebx, ebp
jl 0x4b6d00
jmp 0x4b6d62
mov ebp, ebx
mov ebx, dword [esp + 0x4d8]
sub ebp, dword [esp + 0x28]
mov dword [esp + 0x1c], ebp
mov edi, ebp
cmp edi, dword [esp + 0x20]
jne 0x4b6f33
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x4c8]
mov esi, dword [eax + 0x2c8]
lea ebp, [edi + edx + 1]
test ebp, ebp
jg 0x4b6d9d
xor ebp, ebp
jmp 0x4b6f22
mov ecx, dword [esi + 4]
mov edx, dword [ecx + 8]
lea edi, [esi + 4]
push edi
call edx
cmp ebp, eax
jl 0x4b6dbc
mov eax, dword [edi]
mov ecx, dword [eax + 8]
push edi
call ecx
mov ebp, eax
jmp 0x4b6f22
lea edi, [ebp - 1]
call fcn.0049d7d0
test al, al
je 0x4b6dce
inc ebp
jmp 0x4b6f22
mov eax, dword [esi + 0x1ec]
test eax, eax
je 0x4b6f22
cmp eax, 0xfde9
jne 0x4b6e3e
cmp ebp, dword [esi + 0x1c]
jge 0x4b6df0
mov edx, dword [esi + 0x10]
mov al, byte [edx + ebp]
jmp 0x4b6e04
cmp ebp, dword [esi + 0x18]
jl 0x4b6df9
xor al, al
jmp 0x4b6e04
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x10]
add eax, ebp
mov al, byte [eax + ecx]
movzx eax, al
add eax, 0xffffff80
cmp eax, 0x3f
ja 0x4b6f22
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x1c]
push eax
push ebp
mov edi, esi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x2c], ebp
call fcn.0049d8f0
test al, al
je 0x4b6f22
mov ebp, dword [esp + 0x20]
jmp 0x4b6f22
mov edi, dword [esi + 4]
mov ecx, dword [edi + 0x14]
lea ebx, [esi + 4]
push ebp
push ebx
call ecx
mov edx, dword [edi + 0x18]
push eax
push ebx
call edx
mov dword [esp + 0x20], eax
cmp ebp, eax
je 0x4b6f22
mov ebx, ebp
jle 0x4b6f22
lea edi, [ebp - 1]
cmp edi, dword [esi + 0x1c]
jge 0x4b6e81
test edi, edi
jge 0x4b6e79
mov byte [esp + 0x44], 0
jmp 0x4b6e9c
mov eax, dword [esi + 0x10]
mov cl, byte [edi + eax]
jmp 0x4b6e98
cmp edi, dword [esi + 0x18]
jl 0x4b6e8d
mov byte [esp + 0x44], 0
jmp 0x4b6e9c
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x10]
add edx, edi
mov cl, byte [edx + eax]
mov byte [esp + 0x44], cl
mov ecx, dword [esp + 0x44]
mov edx, dword [esi + 4]
mov edx, dword [edx + 0x48]
lea eax, [esi + 4]
push ecx
push eax
call edx
test al, al
je 0x4b6eb9
dec ebx
dec edi
cmp ebx, dword [esp + 0x20]
jg 0x4b6e69
cmp ebx, ebp
jge 0x4b6f22
lea ecx, [ecx]
cmp ebx, dword [esi + 0x1c]
jge 0x4b6edc
test ebx, ebx
jge 0x4b6ed0
mov byte [esp + 0x38], 0
jmp 0x4b6ef5
mov eax, dword [esi + 0x10]
mov cl, byte [ebx + eax]
mov byte [esp + 0x38], cl
jmp 0x4b6ef5
cmp ebx, dword [esi + 0x18]
jl 0x4b6ee8
mov byte [esp + 0x38], 0
jmp 0x4b6ef5
mov edx, dword [esi + 0x20]
add edx, dword [esi + 0x10]
mov al, byte [edx + ebx]
mov byte [esp + 0x38], al
mov edx, dword [esp + 0x38]
mov ecx, dword [esi + 4]
lea eax, [esi + 4]
push edx
push eax
mov eax, dword [ecx + 0x48]
call eax
xor ecx, ecx
test al, al
setne cl
inc ecx
lea eax, [ecx + ebx]
cmp eax, ebp
je 0x4b6f22
jg 0x4b6f1f
mov ebx, eax
cmp ebx, ebp
jl 0x4b6ec0
jmp 0x4b6f22
lea ebp, [ecx + ebx]
sub ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x4d8]
mov dword [esp + 0x1c], ebp
mov edi, ebp
inc dword [ebx + 0x4c]
mov eax, dword [ebx + 0x4c]
push edi
push eax
mov esi, ebx
mov dword [esp + 0x28], edi
call fcn.004ac460
mov ecx, dword [ebx + 0x38]
fld dword [ecx + edi*4]
lea esi, [edi + 1]
fsub dword [ebx + 0x50]
fstp qword [esp + 0x5c]
jmp 0x4b7399
test esi, esi
jle 0x4b7398
mov edx, dword [esp + 0x4d4]
mov eax, dword [edx + 0x7d4]
cmp eax, 2
jne 0x4b7362
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x4c8]
mov ebp, dword [ecx + 0x2c8]
lea ebx, [esi + eax]
test ebx, ebx
jg 0x4b6f98
xor ebx, ebx
jmp 0x4b712a
mov edx, dword [ebp + 4]
mov eax, dword [edx + 8]
lea edi, [ebp + 4]
push edi
call eax
cmp ebx, eax
jl 0x4b6fb7
mov ecx, dword [edi]
mov edx, dword [ecx + 8]
push edi
call edx
mov ebx, eax
jmp 0x4b712a
lea edi, [ebx - 1]
mov esi, ebp
mov dword [esp + 0x1c], edi
call fcn.0049d7d0
test al, al
je 0x4b6fd0
mov ebx, edi
jmp 0x4b7126
mov eax, dword [ebp + 0x1ec]
test eax, eax
je 0x4b7126
cmp eax, 0xfde9
jne 0x4b7040
cmp ebx, dword [ebp + 0x1c]
jge 0x4b6ff2
mov eax, dword [ebp + 0x10]
mov al, byte [ebx + eax]
jmp 0x4b7006
cmp ebx, dword [ebp + 0x18]
jl 0x4b6ffb
xor al, al
jmp 0x4b7006
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp + 0x10]
add ecx, ebx
mov al, byte [ecx + edx]
movzx eax, al
add eax, 0xffffff80
cmp eax, 0x3f
ja 0x4b7126
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x20]
push ecx
push ebx
mov edi, ebp
mov dword [esp + 0x28], ebx
mov dword [esp + 0x3c], ebx
call fcn.0049d8f0
test al, al
je 0x4b7126
mov ebx, dword [esp + 0x1c]
jmp 0x4b7126
mov edi, dword [ebp + 4]
mov edx, dword [edi + 0x14]
lea esi, [ebp + 4]
push ebx
push esi
call edx
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
mov dword [esp + 0x30], eax
cmp ebx, eax
je 0x4b7126
mov esi, ebx
jle 0x4b7126
mov edi, dword [esp + 0x1c]
lea esp, [esp]
cmp edi, dword [ebp + 0x1c]
jge 0x4b7088
test edi, edi
jge 0x4b7080
mov byte [esp + 0x40], 0
jmp 0x4b70a3
mov ecx, dword [ebp + 0x10]
mov dl, byte [edi + ecx]
jmp 0x4b709f
cmp edi, dword [ebp + 0x18]
jl 0x4b7094
mov byte [esp + 0x40], 0
jmp 0x4b70a3
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x10]
add eax, edi
mov dl, byte [eax + ecx]
mov byte [esp + 0x40], dl
mov edx, dword [esp + 0x40]
mov ecx, dword [ebp + 4]
lea eax, [ebp + 4]
push edx
push eax
mov eax, dword [ecx + 0x48]
call eax
test al, al
je 0x4b70c0
dec esi
dec edi
cmp esi, dword [esp + 0x30]
jg 0x4b7070
cmp esi, ebx
jge 0x4b7126
cmp esi, dword [ebp + 0x1c]
jge 0x4b70e0
test esi, esi
jge 0x4b70d4
mov byte [esp + 0x3c], 0
jmp 0x4b70f9
mov ecx, dword [ebp + 0x10]
mov dl, byte [esi + ecx]
mov byte [esp + 0x3c], dl
jmp 0x4b70f9
cmp esi, dword [ebp + 0x18]
jl 0x4b70ec
mov byte [esp + 0x3c], 0
jmp 0x4b70f9
mov eax, dword [ebp + 0x20]
add eax, dword [ebp + 0x10]
mov cl, byte [eax + esi]
mov byte [esp + 0x3c], cl
mov ecx, dword [esp + 0x3c]
mov edx, dword [ebp + 4]
mov edx, dword [edx + 0x48]
lea eax, [ebp + 4]
push ecx
push eax
call edx
xor ecx, ecx
test al, al
setne cl
inc ecx
mov eax, ecx
add eax, esi
cmp eax, ebx
je 0x4b7126
jg 0x4b7124
mov esi, eax
cmp esi, ebx
jl 0x4b70c4
jmp 0x4b7126
mov ebx, esi
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x4c8]
mov ebp, dword [edx + 0x2c8]
sub ebx, eax
mov edi, ebx
lea ebx, [esi + eax + 1]
mov dword [esp + 0x1c], edi
test ebx, ebx
jg 0x4b7163
xor ebx, ebx
sub ebx, eax
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x4d8]
mov esi, dword [esp + 0x18]
jmp 0x4b739d
mov eax, dword [ebp + 4]
mov ecx, dword [eax + 8]
lea esi, [ebp + 4]
push esi
call ecx
cmp ebx, eax
jl 0x4b7195
mov edx, dword [esi]
mov eax, dword [edx + 8]
push esi
call eax
mov ebx, eax
sub ebx, dword [esp + 0x28]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x4d8]
mov esi, dword [esp + 0x18]
jmp 0x4b739d
lea edi, [ebx - 1]
mov esi, ebp
call fcn.0049d7d0
test al, al
je 0x4b71c0
mov edi, dword [esp + 0x1c]
inc ebx
sub ebx, dword [esp + 0x28]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x4d8]
mov esi, dword [esp + 0x18]
jmp 0x4b739d
mov eax, dword [ebp + 0x1ec]
test eax, eax
je 0x4b7349
cmp eax, 0xfde9
jne 0x4b7247
cmp ebx, dword [ebp + 0x1c]
jge 0x4b71e2
mov ecx, dword [ebp + 0x10]
mov al, byte [ebx + ecx]
jmp 0x4b71f6
cmp ebx, dword [ebp + 0x18]
jl 0x4b71eb
xor al, al
jmp 0x4b71f6
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x10]
add edx, ebx
mov al, byte [edx + eax]
movzx eax, al
add eax, 0xffffff80
cmp eax, 0x3f
ja 0x4b7349
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x34]
push edx
push ebx
mov edi, ebp
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x24], ebx
call fcn.0049d8f0
test al, al
je 0x4b7349
mov ebx, dword [esp + 0x18]
sub ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x4d8]
mov esi, dword [esp + 0x18]
jmp 0x4b739d
mov edi, dword [ebp + 4]
mov eax, dword [edi + 0x14]
lea esi, [ebp + 4]
push ebx
push esi
call eax
mov ecx, dword [edi + 0x18]
push eax
push esi
call ecx
mov dword [esp + 0x30], eax
cmp ebx, eax
je 0x4b7349
mov esi, ebx
jle 0x4b7349
lea edi, [ebx - 1]
cmp edi, dword [ebp + 0x1c]
jge 0x4b728e
test edi, edi
jge 0x4b7282
mov byte [esp + 0x34], 0
jmp 0x4b72a7
mov edx, dword [ebp + 0x10]
mov al, byte [edi + edx]
mov byte [esp + 0x34], al
jmp 0x4b72a7
cmp edi, dword [ebp + 0x18]
jl 0x4b729a
mov byte [esp + 0x34], 0
jmp 0x4b72a7
mov ecx, dword [ebp + 0x20]
add ecx, dword [ebp + 0x10]
mov dl, byte [ecx + edi]
mov byte [esp + 0x34], dl
mov edx, dword [esp + 0x34]
mov ecx, dword [ebp + 4]
lea eax, [ebp + 4]
push edx
push eax
mov eax, dword [ecx + 0x48]
call eax
test al, al
je 0x4b72c4
dec esi
dec edi
cmp esi, dword [esp + 0x30]
jg 0x4b7272
cmp esi, ebx
jge 0x4b7349
lea esp, [esp]
cmp esi, dword [ebp + 0x1c]
jge 0x4b72ec
test esi, esi
jge 0x4b72e0
mov byte [esp + 0x24], 0
jmp 0x4b7305
mov ecx, dword [ebp + 0x10]
mov dl, byte [esi + ecx]
mov byte [esp + 0x24], dl
jmp 0x4b7305
cmp esi, dword [ebp + 0x18]
jl 0x4b72f8
mov byte [esp + 0x24], 0
jmp 0x4b7305
mov eax, dword [ebp + 0x20]
add eax, dword [ebp + 0x10]
mov cl, byte [eax + esi]
mov byte [esp + 0x24], cl
mov ecx, dword [esp + 0x24]
mov edx, dword [ebp + 4]
mov edx, dword [edx + 0x48]
lea eax, [ebp + 4]
push ecx
push eax
call edx
xor ecx, ecx
test al, al
setne cl
inc ecx
lea eax, [ecx + esi]
cmp eax, ebx
je 0x4b7349
jg 0x4b7346
mov esi, eax
cmp esi, ebx
jl 0x4b72d0
sub ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x4d8]
mov esi, dword [esp + 0x18]
jmp 0x4b739d
lea ebx, [ecx + esi]
sub ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x4d8]
mov esi, dword [esp + 0x18]
jmp 0x4b739d
cmp eax, 1
jne 0x4b7374
mov eax, dword [ebx + 0x34]
mov cl, byte [eax + esi]
add eax, esi
cmp cl, byte [eax - 1]
jne 0x4b7396
mov edx, dword [ebx + 0x30]
movsx ecx, byte [edx + esi - 1]
lea eax, [edx + esi]
cmp ecx, 0x20
je 0x4b7389
cmp ecx, 9
jne 0x4b7398
movsx eax, byte [eax]
cmp eax, 0x20
je 0x4b7398
cmp eax, 9
je 0x4b7398
mov edi, esi
inc esi
mov dword [esp + 0x18], esi
cmp esi, dword [ebx + 0x18]
jl 0x4b6b91
mov eax, dword [esp + 0x4d8]
inc dword [eax + 0x4c]
mov ebp, eax
mov dword [ebp + 0x20], 3
mov ecx, dword [esp + 0x4b4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4ac
ret 0x1c