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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x248
mov edx, dword [esp + 0x268]
mov dword [esp + 0xc4], edx
mov eax, dword [esp + 0x25c]
mov ebx, dword [esp + 0x264]
mov ecx, dword [esp + 0x26c]
mov edx, dword [esp + 0x270]
mov dword [esp + 0xb8], eax
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc8], ecx
xor ecx, ecx
mov dword [esp + 0xbc], edx
mov eax, dword [0x52ec00]
xor eax, esp
mov dword [esp + 0x244], eax
mov esi, dword [esp + 0x260]
mov dword [esp + 0x1c4], ecx
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x214], ecx
mov dword [esp + 0x1d8], ecx
mov dword [esp + 0x218], ecx
mov dword [esp + 0x1dc], ecx
mov dword [esp + 0x21c], ecx
mov dword [esp + 0x1e0], ecx
mov dword [esp + 0x220], ecx
mov dword [esp + 0x1e4], ecx
mov dword [esp + 0x224], ecx
mov dword [esp + 0x1e8], ecx
mov dword [esp + 0x228], ecx
mov dword [esp + 0x1ec], ecx
mov dword [esp + 0x22c], ecx
mov dword [esp + 0x1f0], ecx
mov dword [esp + 0x230], ecx
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x234], ecx
mov dword [esp + 0x1f8], ecx
mov dword [esp + 0x238], ecx
mov dword [esp + 0x1fc], ecx
mov dword [esp + 0x23c], ecx
mov dword [esp + 0x200], ecx
mov dword [esp + 0x240], ecx
mov dword [esp + 0x204], ecx
mov dword [esp + 0x208], ecx
mov dword [esp + 0x20c], ecx
mov dword [esp + 0x210], ecx
test ebx, 0x8010000
je 0x4b9592
test dword [esp + 0xc0], 0x10000
je 0x4b958b
lea eax, [esp + 0x27b]
and eax, 0xfffffffc
movsx edx, byte [eax]
jmp 0x4b9597
mov edx, 0x2c
jmp 0x4b9597
mov edx, 0x2e
test esi, esi
jle 0x4bba5a
mov ebp, ebx
mov eax, ebp
and eax, 0x80
mov ecx, ebp
mov ebx, eax
and ecx, 0x80000000
shl eax, 0x18
mov edi, dword [esp + 0xb8]
and ecx, eax
shl ebx, 4
shr ecx, 0x13
or ebx, ecx
movsx eax, byte [edi]
test ebp, 0x20
je 0x4b9602
lea ecx, [eax - 9]
cmp ecx, 4
ja 0x4bba53
mov ebp, edi
lea eax, [ebp + 1]
mov ebp, eax
dec esi
je 0x4bba27
movsx eax, byte [eax]
lea ecx, [eax - 9]
cmp ecx, 4
jbe 0x4b95df
cmp eax, 0x20
je 0x4b95df
mov dword [esp + 0xb8], ebp
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xb4], ecx
cmp eax, 0x2d
jne 0x4b961a
add ebx, 8
jmp 0x4b961f
cmp eax, 0x2b
jne 0x4b9630
inc dword [esp + 0xb8]
add ebx, 2
dec esi
je 0x4bb276
xor eax, eax
fldz
mov dword [esp + 0x38], edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x34], 9
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0xb0], eax
mov edx, dword [esp + 0xb8]
movsx ebp, byte [edx]
lea eax, [ebp - 0x2b]
cmp eax, 0x4d
ja 0x4b98b0
movzx eax, word [eax*2 + 0x5082d0]
add eax, 0x4b968f
jmp eax
fstp st(0)
mov dword [esp + 0xb4], edx
test bl, 8
je 0x4b97ef
fld qword [0x508fc8]
jmp 0x4b97f5
fld qword [0x508fc0]
and ebx, 0xfffffff7
mov eax, ebx
mov ecx, dword [esp + 0xc0]
or eax, 0xc000000
test ecx, 0x40000000
je 0x4b9810
mov ebx, eax
test cl, 2
je 0x4b98e2
test esi, esi
je 0x4b98e2
cmp byte [edx], 0x20
jne 0x4b98e2
inc edx
dec esi
jne 0x4b9821
jmp 0x4b98e2
cmp byte [eax - 1], 0x66
je 0x4b97d9
mov edx, ecx
neg ecx
lea esi, [eax + ecx]
jmp 0x4b98e2
cmp ebp, 9
jne 0x4b98c5
test byte [esp + 0xc0], 1
jne 0x4b99b3
jmp 0x4b98e2
cmp ebp, 0x20
jne 0x4b98e2
test byte [esp + 0xc0], 2
jne 0x4b99b3
test byte [esp + 0xc0], 0x40
jne 0x4b9905
cmp ebp, dword [esp + 0x38]
jne 0x4bb5d9
test bl, 1
jne 0x4bb5d9
mov dword [esp + 0x58], 0
or ebx, 1
jmp 0x4b99b3
mov ebp, 0x30
cmp dword [esp + 0x54], 0
je 0x4b99a0
add ebp, 0xffffffd0
or ebx, 4
xor eax, eax
mov ecx, ebx
and ecx, 0x201
cmp ecx, 0x200
mov edi, dword [esp + 0x58]
sete al
neg eax
mov ecx, dword [esp + 0xb0]
inc dword [esp + 0x54]
lea eax, [edi + eax + 1]
mov dword [esp + 0x58], eax
cmp ecx, dword [esp + 0x34]
je 0x4b996b
mov edi, dword [esp + 0x74]
mov eax, edi
mov ecx, dword [esp + 0x20]
shl eax, cl
inc dword [esp + 0xb0]
lea eax, [eax + edi*8]
add eax, ebp
mov dword [esp + 0x74], eax
jmp 0x4b99b3
cmp dword [esp + 0x78], 2
jae 0x4b9997
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x74], ebp
mov dword [esp + ecx*4 + 0x1c8], eax
inc ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0xb0], 1
jmp 0x4b99b3
or dword [esp + 0xac], ebp
jmp 0x4b99b3
mov eax, ebx
or ebx, 4
and eax, 1
add dword [esp + 0x58], eax
xor eax, 1
add dword [esp + 0x1c], eax
inc edx
dec esi
jne 0x4b9671
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0xb0]
mov ebp, dword [esp + 0xb8]
mov dword [esp + 0x40], 0
test bl, 4
mov edx, ebx
jne 0x4b99ea
mov ebp, dword [esp + 0xb4]
and edx, 0x40
mov dword [esp + 0x14], edx
je 0x4b99fa
mov ebp, dword [esp + 0xb8]
test dword [esp + 0xc0], 0x8000
je 0x4b9a35
test dword [esp + 0xc0], 0x80000000
je 0x4b9a26
test esi, esi
je 0x4b9a35
mov edx, dword [esp + 0xb8]
cmp byte [edx], 0
jne 0x4b9a2a
jmp 0x4b9a35
test esi, esi
je 0x4b9a35
or ebx, 0x3000000
jmp 0x4bb209
mov edx, ebx
and edx, 0x200
mov dword [esp], edx
je 0x4b9a4c
mov edx, ebx
and edx, 0x54
cmp edx, 0x54
jne 0x4b9a2a
cmp dword [esp + 0x54], 0
jne 0x4b9a85
mov eax, ebx
and eax, 0xc
cmp eax, 0xc
jne 0x4b9a5f
fchs
mov eax, dword [esp + 0xc0]
mov edx, ebx
and eax, 0x28000
or edx, 0x3000000
cmp eax, 0x28000
jne 0x4bb209
mov ebx, edx
jmp 0x4bb209
test bl, 0x20
je 0x4b9a91
cmp dword [esp + 0x14], 0
je 0x4b9a2a
fstp st(0)
test bl, 0x10
je 0x4b9ae8
cmp dword [esp + 0x3c], 6
jbe 0x4b9ab5
mov esi, ebx
and esi, 8
test ebx, 0x80
jne 0x4badfa
jmp 0x4bad5f
mov edx, dword [esp + 0x40]
mov edi, edx
neg edi
test ebx, 0x80
mov esi, dword [esp + 0xc8]
jne 0x4b9ace
mov edi, edx
test dword [esp + 0xc0], 0x400
jne 0x4b9ae0
mov esi, 0
sub edi, esi
mov dword [esp + 0x18], edi
jmp 0x4b9af5
mov edx, dword [esp + 0xc8]
neg edx
mov dword [esp + 0x18], edx
cmp dword [esp], 0
je 0x4b9ced
shl ecx, 2
neg ecx
shl eax, cl
cmp dword [esp + 0x54], 8
ja 0x4b9b3c
mov dword [esp + 0x14], 0
test eax, eax
jle 0x4b9b28
mov edx, dword [esp + 0x14]
add eax, eax
inc edx
test eax, eax
jg 0x4b9b1d
mov dword [esp + 0x14], edx
mov dword [esp + 0x208], eax
mov dword [esp + 0x74], 1
jmp 0x4b9cd1
mov edx, dword [esp + 0x78]
lea ecx, [edx + 1]
mov dword [esp + 0x74], ecx
mov dword [esp + ecx*4 + 0x1c4], eax
test eax, eax
jne 0x4b9b63
mov eax, ecx
dec eax
cmp dword [esp + eax*4 + 0x1c4], 0
je 0x4b9b54
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x1c8]
mov dword [esp + 0x14], 0
test eax, eax
jle 0x4b9c60
mov edx, dword [esp + 0x14]
add eax, eax
inc edx
test eax, eax
jg 0x4b9b7e
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c8], eax
cmp dword [esp + 0x14], 0
je 0x4b9c60
mov dword [esp + 0x208], eax
cmp dword [esp + 0x74], 1
jbe 0x4b9cd1
mov eax, dword [esp + 0x74]
lea eax, [eax - 1]
shr eax, 1
je 0x4bb5fa
xor esi, esi
mov dword [esp + 0x6c], ebx
neg edx
mov dword [esp + 0x70], ebp
mov dword [esp], eax
nop
lea esi, [esi]
mov eax, dword [esp + esi*8 + 0x1cc]
mov ecx, edx
mov ebx, eax
shr ebx, cl
mov edi, dword [esp + 0x14]
mov ecx, edi
or dword [esp + esi*8 + 0x208], ebx
mov ebx, dword [esp + esi*8 + 0x1d0]
mov ebp, ebx
shl eax, cl
mov ecx, edx
shr ebp, cl
mov ecx, edi
shl ebx, cl
or eax, ebp
mov dword [esp + esi*8 + 0x20c], eax
mov dword [esp + esi*8 + 0x210], ebx
inc esi
cmp esi, dword [esp]
jb 0x4b9bd0
mov ebx, dword [esp + 0x6c]
lea eax, [esi + esi + 1]
mov ebp, dword [esp + 0x70]
mov dword [esp], eax
mov eax, dword [esp]
mov edx, dword [esp + 0x74]
lea ecx, [eax - 1]
lea esi, [edx - 1]
cmp ecx, esi
jae 0x4b9cd1
mov esi, eax
mov eax, dword [esp + 0x14]
mov ecx, eax
neg ecx
mov edx, dword [esp + esi*4 + 0x1c8]
mov edi, edx
shr edi, cl
mov ecx, eax
shl edx, cl
or dword [esp + esi*4 + 0x204], edi
mov dword [esp + esi*4 + 0x208], edx
jmp 0x4b9cd1
cmp dword [esp + 0x74], 0
je 0x4b9cd1
cmp dword [esp + 0x74], 0x18
jle 0x4bb606
mov esi, dword [esp + 0x74]
lea edi, [esp + 0x1c4]
lea edx, [esp + 0x204]
sub edx, edi
lea ecx, [esi*4]
xor esi, esi
xor eax, eax
cmp edx, ecx
setg al
neg edx
cmp edx, ecx
mov dword [esp], eax
mov eax, esi
setg al
mov edx, dword [esp]
or edx, eax
je 0x4bb606
mov eax, dword [esp + 0x74]
lea esi, [esp + 0x208]
lea ecx, [esp + 0x1c8]
lea edx, [eax*4]
push edx
push ecx
push esi
call fcn.004c6aa0
add esp, 0xc
mov edx, dword [esp + 0x54]
sub edx, dword [esp + 0x58]
mov eax, dword [esp + 0x18]
lea ecx, [eax + edx*4]
sub ecx, dword [esp + 0x14]
mov dword [esp + 0x78], ecx
jmp 0x4baa56
test bl, 1
je 0x4b9cfc
mov edx, dword [esp + 0x58]
sub dword [esp + 0x18], edx
jmp 0x4b9d0b
mov edx, dword [esp + 0x18]
sub edx, dword [esp + 0xc4]
mov dword [esp + 0x18], edx
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x54]
add edx, esi
cmp edx, 0xfffffebd
jge 0x4b9d27
mov esi, ebx
and esi, 8
jmp 0x4badfa
cmp edx, 0x135
jle 0x4b9d39
mov esi, ebx
and esi, 8
jmp 0x4bad5f
mov edi, esi
mov esi, dword [esp + 0x54]
lea edx, [esi - 0x1b]
test edx, edx
lea edx, [edi + esi - 0x1b]
jg 0x4b9d4c
mov edx, edi
mov dword [esp + 0x40], edx
test edx, edx
jne 0x4b9d68
cmp dword [esp + 0x54], 0x12
ja 0x4b9d68
mov dword [esp + 0x34], 0
jmp 0x4bb0b2
mov edi, ebx
or edi, 0x100
lea esi, [edx + 0x16]
cmp esi, 0x2c
ja 0x4b9d7a
mov ebx, edi
cmp dword [esp + 0x54], 0xf
jbe 0x4b9da7
cmp dword [esp + 0x54], 0x10
jbe 0x4b9d96
mov edx, ebx
and edx, 0x100
mov dword [esp + 0x18], edx
jmp 0x4b9dd0
cmp dword [esp + 0x1c8], 0x35afe535
jb 0x4b9da7
test al, 1
jne 0x4b9d88
mov edx, ebx
and edx, 0x100
mov dword [esp + 0x18], edx
jne 0x4b9d5b
cmp dword [esp + 0x40], 0
jl 0x4b9dd0
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x54]
lea edi, [edx + esi]
cmp edi, 0x25
jle 0x4bb0a3
cmp dword [esp + 0x54], 9
ja 0x4baf43
mov dword [esp + 0x78], 0
test eax, eax
jle 0x4b9df6
mov edx, dword [esp + 0x78]
add eax, eax
inc edx
test eax, eax
jg 0x4b9deb
mov dword [esp + 0x78], edx
mov dword [esp + 0x208], eax
mov eax, dword [esp + 0x78]
neg eax
add eax, 0x20
mov dword [esp + 0x78], eax
mov dword [esp + 0x74], 1
cmp dword [esp + 0x18], 0
je 0x4b9edf
mov eax, dword [esp + 0x74]
shl eax, 5
cmp eax, 0x40
ja 0x4b9edf
mov edx, dword [esp + 0x20c]
test edx, 0x7ff
jne 0x4b9edf
cmp dword [esp + 0x74], 2
mov eax, dword [esp + 0x208]
jae 0x4b9e53
mov edx, 0
mov dword [esp], eax
cmp dword [esp + 0x78], 0xfffffc02
jle 0x4b9e89
mov ecx, dword [esp + 0x78]
mov esi, eax
mov eax, esi
shl ecx, 0x14
shr esi, 0xb
add ecx, 0x3fe00000
and esi, 0xffefffff
shr edx, 0xb
or esi, ecx
shl eax, 0x15
mov dword [esp], esi
or edx, eax
jmp 0x4b9ec3
mov eax, dword [esp + 0x78]
neg eax
add eax, 0xfffffc0e
mov dword [esp + 0x78], eax
cmp eax, 0x20
jl 0x4b9ead
mov ecx, eax
mov edx, dword [esp]
shr edx, cl
mov dword [esp], 0
jmp 0x4b9ec3
mov ecx, eax
mov edi, dword [esp]
mov esi, edi
shr edx, cl
neg ecx
shl esi, cl
mov ecx, eax
shr edi, cl
or edx, esi
mov dword [esp], edi
mov eax, dword [esp]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
fld qword [esp + 0x14]
mov dword [esp + 0x34], 0
jmp 0x4bb1d8
cmp dword [esp + 0x40], 0
je 0x4baa56
xor eax, eax
mov dword [esp + 0x184], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], eax
cmp dword [esp + 0x74], 2
jb 0x4ba014
mov eax, dword [esp + 0x210]
shr eax, 0x1f
mov edx, dword [esp + 0x20c]
add edx, eax
mov dword [esp + 0x20c], edx
cmp edx, eax
jae 0x4b9fec
mov eax, 1
mov dword [esp + 0x204], 0
mov dword [esp + 0x74], eax
cmp dword [esp + 0x208], 0xffffffff
je 0x4b9fa4
lea eax, [esp + 0x208]
mov dword [esp + 0x34], eax
mov eax, dword [eax]
jmp 0x4b9fc4
mov edx, eax
dec edx
lea ecx, [esp + edx*4 + 0x204]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x4b9fa6
mov dword [esp + 0x74], edx
mov dword [esp + 0x34], ecx
cmp dword [esp + 0x74], 0
je 0x4b9fcd
mov edx, dword [esp + 0x34]
inc eax
mov dword [edx], eax
jmp 0x4ba023
inc dword [esp + 0x78]
lea eax, [esp + 0x208]
mov dword [eax], 0x80000000
mov dword [esp + 0x74], 1
mov dword [esp + 0x34], eax
jmp 0x4ba023
mov eax, 2
mov dword [esp + 0x74], eax
test edx, edx
jne 0x4bb67e
dec eax
lea edx, [esp + eax*4 + 0x204]
cmp dword [edx], 0
je 0x4b9ffd
mov dword [esp + 0x74], eax
mov dword [esp + 0x34], edx
jmp 0x4ba023
mov eax, dword [esp + 0x74]
lea edx, [esp + eax*4 + 0x204]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x40]
xor eax, eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], eax
lea ecx, [edx + 0x2f]
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x180], eax
cmp ecx, 0x5e
ja 0x4ba0f5
mov esi, edx
mov dword [esp + 0x14c], eax
mov dword [esp + 0x148], eax
movsx edx, word [esi*2 + 0x508d1e]
mov ecx, dword [esi*8 + 0x508b3c]
mov edi, dword [esi*8 + 0x508b38]
mov dword [esp + 0x58], 2
mov dword [esp + 0x38], edx
mov dword [esp + 0x188], ecx
mov dword [esp + 0x18c], edi
test edi, edi
jne 0x4bb68e
mov edx, dword [esp + 0x58]
dec edx
lea eax, [esp + edx*4 + 0x184]
cmp dword [eax], 0
je 0x4ba0df
mov dword [esp + 0x58], edx
jmp 0x4ba640
cmp dword [esp + 0x40], 0
jl 0x4bb765
mov eax, edx
mov edx, eax
sar edx, 3
lea esi, [edx + edx]
movzx ecx, word [esi + 0x508f02]
lea edi, [edx + edx + 2]
shr ecx, 5
cmp ecx, eax
jle 0x4ba11e
mov edi, esi
movzx edx, word [edi + 0x508f00]
mov esi, edx
and esi, 0x1f
shr edx, 5
sub eax, edx
mov dword [esp + 0x40], eax
movsx eax, word [esi*2 + 0x508f78]
mov dword [esp + 0x18], eax
mov ecx, dword [esi*8 + 0x508e84]
mov eax, dword [esi*8 + 0x508e80]
mov dword [esp + 0x148], ecx
mov dword [esp + 0x14c], eax
mov esi, dword [esp + 0x40]
mov dword [esp + 0x54], 2
movsx edx, word [esi*2 + 0x508d1e]
mov ecx, dword [esi*8 + 0x508b3c]
mov edi, dword [esi*8 + 0x508b38]
mov dword [esp + 0x14], edx
mov dword [esp + 0x188], ecx
mov dword [esp + 0x18c], edi
test edi, edi
jne 0x4bb751
mov esi, dword [esp + 0x54]
dec esi
lea ecx, [esp + esi*4 + 0x184]
cmp dword [ecx], 0
lea edx, [esi*4]
je 0x4ba19b
mov dword [esp + 0x20], edx
mov dword [esp + 0x54], esi
mov dword [esp + 8], eax
mov eax, dword [ecx]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
mul dword [esp + 8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x148]
mov ecx, dword [ecx]
mov dword [esp + esi*4 + 0x108], 0
mov dword [esp + 0x44], ecx
mov dword [esp + esi*4 + 0xc8], eax
mov dword [esp + esi*4 + 0xcc], edx
mov dword [esp + 0x48], edi
mov eax, dword [esp + 0x44]
mul dword [esp + 0x48]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
mov ecx, dword [esp + 0x54]
xor eax, eax
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + ecx*4 + 0xc8]
add edi, esi
cmp edi, esi
mov dword [esp + ecx*4 + 0x104], eax
setb al
add eax, dword [esp + 0x50]
mov dword [esp + ecx*4 + 0xc8], edi
mov dword [esp + ecx*4 + 0xc4], eax
dec ecx
js 0x4ba2db
mov eax, dword [esp + 0x54]
shr eax, 1
je 0x4bb747
mov edi, dword [esp + 0x20]
xor edx, edx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x1c], ecx
lea esi, [esp + edi + 0x104]
mov dword [esp], esi
lea esi, [esp + edi + 0xc4]
xor edi, edi
mov ebp, esi
mov esi, dword [esp]
lea ecx, [edx*8]
inc edx
neg ecx
mov dword [esi + ecx - 4], edi
mov dword [ebp + ecx - 4], edi
mov dword [esi + ecx - 8], edi
mov dword [ebp + ecx - 8], edi
cmp edx, eax
jb 0x4ba281
mov ebp, dword [esp + 0x70]
lea eax, [edx + edx + 1]
mov ecx, dword [esp + 0x1c]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x54]
jae 0x4ba2db
shl eax, 2
xor esi, esi
mov dword [esp + 0x6c], ebx
neg eax
mov ebx, dword [esp + 0x20]
lea edx, [esp + ebx + 0x104]
mov dword [eax + edx], esi
lea edi, [esp + ebx + 0xc4]
mov dword [eax + edi], esi
mov ebx, dword [esp + 0x6c]
test ecx, ecx
je 0x4ba37f
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebp
mov ebp, 2
lea esi, [esp + ecx*4 + 0x104]
lea ebx, [esp + ecx*4 + 0xc4]
mov eax, dword [esp + ecx*4 + 0x184]
mov edx, dword [esp + ebp*4 + 0x144]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edx
mov eax, dword [esp + 0x8c]
mul dword [esp + 0x90]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], edx
mov edx, dword [esp + 0x94]
mov edi, dword [ebx + ebp*4]
add edi, edx
mov dword [ebx + ebp*4], edi
xor eax, eax
cmp edi, edx
mov edi, 0
setb al
add eax, dword [esp + 0x98]
mov edx, dword [ebx + ebp*4 - 4]
add edx, eax
cmp edx, eax
mov eax, edi
mov dword [ebx + ebp*4 - 4], edx
setb al
add dword [esi + ebp*4 - 8], eax
dec ebp
jne 0x4ba2fe
dec ecx
jne 0x4ba2eb
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
lea eax, [edx + 2]
mov dword [esp + 0x58], eax
lea edi, [ecx + esi]
mov esi, dword [esp + edx*4 + 0xcc]
mov dword [esp + 0x38], edi
lea ecx, [esp + edx*4 + 0x18c]
mov dword [esp + 0x1c], ecx
lea edx, [edx + 1]
mov dword [ecx], esi
mov dword [esp], edx
cmp eax, 1
je 0x4ba495
mov ecx, edx
mov dword [esp + 0x20], 0
shr ecx, 1
je 0x4bb73d
mov edi, dword [esp + 0x54]
xor edx, edx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x3c], ecx
lea esi, [esp + edi*4 + 0xc8]
mov dword [esp + 0x40], esi
lea esi, [esp + edi*4 + 0x188]
lea eax, [esp + edi*4 + 0x108]
mov dword [esp + 0x6c], ebx
mov edi, edx
mov ebp, esi
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x40]
inc edx
add ecx, dword [edi + eax]
mov ebx, dword [edi + esi]
add ebx, ecx
cmp ebx, ecx
mov ecx, 0
mov dword [edi + ebp], ebx
mov ebx, ecx
setb bl
add ebx, dword [edi + eax - 4]
mov esi, dword [edi + esi - 4]
add esi, ebx
cmp esi, ebx
mov dword [edi + ebp - 4], esi
setb cl
add edi, 0xfffffff8
cmp edx, dword [esp + 0x3c]
jb 0x4ba401
mov dword [esp + 0x20], ecx
lea eax, [edx + edx + 1]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
lea edx, [eax - 1]
cmp edx, dword [esp]
jae 0x4ba48f
shl eax, 2
mov esi, dword [esp + 0x54]
neg eax
mov edx, dword [esp + 0x20]
mov dword [esp + 0x6c], ebx
lea ecx, [esp + esi*4 + 0x108]
add edx, dword [eax + ecx + 4]
lea ebx, [esp + esi*4 + 0xc8]
add edx, dword [eax + ebx + 4]
lea edi, [esp + esi*4 + 0x188]
mov dword [eax + edi + 4], edx
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x6c]
mov esi, dword [eax]
jmp 0x4ba495
mov eax, dword [esp + 0x1c]
mov esi, dword [eax]
test esi, esi
jne 0x4ba4b2
mov edx, dword [esp + 0x58]
dec edx
lea eax, [esp + edx*4 + 0x184]
cmp dword [eax], 0
je 0x4ba49d
mov dword [esp + 0x1c], eax
mov dword [esp + 0x58], edx
mov esi, dword [esp + 0x188]
test esi, esi
jle 0x4bb72b
mov eax, dword [esp + 0x18]
add esi, esi
mov edx, dword [esp + 0x14]
mov dword [esp + 0x188], esi
cmp dword [esp + 0x58], 2
lea ecx, [eax + edx - 1]
mov dword [esp + 0x38], ecx
jb 0x4ba56f
mov eax, dword [esp + 0x58]
lea ecx, [eax - 1]
shr ecx, 1
je 0x4bb69a
xor eax, eax
mov edx, dword [esp + eax*8 + 0x18c]
mov esi, edx
shr esi, 0x1f
add edx, edx
or dword [esp + eax*8 + 0x188], esi
mov esi, dword [esp + eax*8 + 0x190]
mov edi, esi
shr edi, 0x1f
add esi, esi
or edx, edi
mov dword [esp + eax*8 + 0x18c], edx
mov dword [esp + eax*8 + 0x190], esi
inc eax
cmp eax, ecx
jb 0x4ba4f6
lea eax, [eax + eax + 1]
mov dword [esp], eax
mov eax, dword [esp]
mov edx, dword [esp + 0x58]
lea ecx, [eax - 1]
lea esi, [edx - 1]
cmp ecx, esi
jae 0x4ba564
mov ecx, eax
mov edx, dword [esp + ecx*4 + 0x188]
mov eax, edx
shr eax, 0x1f
add edx, edx
or dword [esp + ecx*4 + 0x184], eax
mov dword [esp + ecx*4 + 0x188], edx
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
je 0x4ba57c
jmp 0x4ba58b
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
jne 0x4ba635
dec dword [esp + 0x58]
cmp dword [esp + 0x58], 2
jb 0x4ba635
mov eax, dword [esp + 0x190]
shr eax, 0x1f
mov edx, dword [esp + 0x18c]
add edx, eax
mov dword [esp + 0x18c], edx
cmp edx, eax
jae 0x4ba60e
mov eax, 1
mov dword [esp + 0x184], 0
mov dword [esp + 0x58], eax
cmp dword [esp + 0x188], 0xffffffff
je 0x4ba5d2
lea eax, [esp + 0x188]
mov edx, dword [eax]
jmp 0x4ba5ee
mov ecx, eax
dec ecx
lea eax, [esp + ecx*4 + 0x184]
mov edx, dword [eax]
cmp edx, 0xffffffff
je 0x4ba5d4
mov dword [esp + 0x58], ecx
cmp dword [esp + 0x58], 0
je 0x4ba5f3
inc edx
mov dword [eax], edx
jmp 0x4ba640
inc dword [esp + 0x38]
lea eax, [esp + 0x188]
mov dword [eax], 0x80000000
mov dword [esp + 0x58], 1
jmp 0x4ba640
mov dword [esp + 0x58], 2
test edx, edx
jne 0x4bb68e
mov edx, dword [esp + 0x58]
dec edx
lea eax, [esp + edx*4 + 0x184]
cmp dword [eax], 0
je 0x4ba622
mov dword [esp + 0x58], edx
jmp 0x4ba640
mov eax, dword [esp + 0x58]
lea eax, [esp + eax*4 + 0x184]
mov eax, dword [eax]
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
lea edx, [ecx + esi]
mov dword [esp + 0x20], edx
lea edi, [ecx + esi - 1]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x3c], edi
mov edx, dword [eax]
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x24]
mul dword [esp + 0x28]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x58]
lea esi, [esp + esi*4 + 0xc4]
mov dword [esi], eax
mov dword [esi + 4], edx
dec ecx
je 0x4ba717
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x18], esi
xor esi, esi
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x34]
mov eax, dword [ebp]
mov edx, dword [esp + ecx*4 + 0x184]
mov dword [esp + ebx*4 + 0x104], 0
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], edx
mov eax, dword [esp + 0x5c]
mul dword [esp + 0x60]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x64]
mov eax, esi
mov edi, dword [esp + ebx*4 + 0xc4]
add edi, edx
cmp edi, edx
mov dword [esp + ebx*4 + 0xc4], edi
setb al
dec ebx
add eax, dword [esp + 0x68]
mov dword [esp + ebx*4 + 0xc4], eax
dec ecx
jne 0x4ba6b0
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
mov dword [esp + eax*4 + 0x104], 0
dec eax
js 0x4ba7bb
mov edx, dword [esp + 0x3c]
shr edx, 1
je 0x4bb721
mov edi, dword [esp + 0x3c]
xor eax, eax
mov dword [esp + 0x70], ebp
mov dword [esp + 0x18], esi
lea ecx, [esp + edi*4 + 0xc0]
mov dword [esp + 0x14], ecx
lea ecx, [esp + edi*4 + 0x100]
mov dword [esp], ecx
xor edi, edi
mov ecx, eax
mov ebp, dword [esp]
mov esi, dword [esp + 0x14]
inc eax
mov dword [ecx + ebp], edi
mov dword [ecx + esi], edi
mov dword [ecx + ebp - 4], edi
mov dword [ecx + esi - 4], edi
add ecx, 0xfffffff8
cmp eax, edx
jb 0x4ba767
mov ebp, dword [esp + 0x70]
lea eax, [eax + eax + 1]
mov esi, dword [esp + 0x18]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x3c]
jae 0x4ba7bb
shl eax, 2
mov ecx, dword [esp + 0x3c]
neg eax
mov dword [esp + 0x6c], ebx
xor ebx, ebx
lea edx, [esp + ecx*4 + 0x100]
mov dword [eax + edx + 4], ebx
lea edi, [esp + ecx*4 + 0xc0]
mov dword [eax + edi + 4], ebx
mov ebx, dword [esp + 0x6c]
dec dword [esp + 0x74]
je 0x4ba87a
mov dword [esp + 0x18], esi
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebp
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x58]
mov ebp, eax
test eax, eax
je 0x4ba867
lea ebx, [esp + esi*4 + 0x104]
lea ecx, [esp + esi*4 + 0xc4]
mov eax, dword [esp + esi*4 + 0x204]
mov edx, dword [esp + ebp*4 + 0x184]
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], edx
mov eax, dword [esp + 0x9c]
mul dword [esp + 0xa0]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0xa4]
mov edi, dword [ecx + ebp*4]
add edi, edx
mov dword [ecx + ebp*4], edi
xor eax, eax
cmp edi, edx
mov edi, 0
setb al
add eax, dword [esp + 0xa8]
mov edx, dword [ecx + ebp*4 - 4]
add edx, eax
cmp edx, eax
mov eax, edi
mov dword [ecx + ebp*4 - 4], edx
setb al
add dword [ebx + ebp*4 - 8], eax
dec ebp
jne 0x4ba7f1
mov eax, dword [esp + 0x58]
dec esi
jne 0x4ba7d9
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x78]
add eax, dword [esp + 0x38]
mov dword [esp + 0x78], eax
lea ecx, [esp + edx*4 + 0x204]
mov eax, dword [ecx - 0x140]
mov dword [esp + 0x74], edx
mov dword [esp + 0x14], ecx
mov dword [ecx], eax
cmp edx, 1
je 0x4ba97d
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x18], 0
shr edx, 1
je 0x4bb717
mov edi, dword [esp + 0x1c]
xor eax, eax
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x20], edx
lea ecx, [esp + edi*4 + 0x204]
mov dword [esp], ecx
lea ecx, [esp + edi*4 + 0x104]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x70], ebp
mov edi, eax
mov ebx, dword [esp]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x34]
inc eax
mov ecx, dword [edi + esi]
add edx, dword [edi + ebp]
add ecx, edx
cmp ecx, edx
mov edx, 0
mov dword [edi + ebx], ecx
mov ecx, edx
setb cl
add ecx, dword [edi + ebp - 4]
mov ebp, dword [edi + esi - 4]
add ebp, ecx
cmp ebp, ecx
mov dword [edi + ebx - 4], ebp
setb dl
add edi, 0xfffffff8
cmp eax, dword [esp + 0x20]
jb 0x4ba8ee
mov dword [esp + 0x18], edx
lea eax, [eax + eax + 1]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x1c]
jae 0x4ba977
shl eax, 2
mov dword [esp + 0x6c], ebx
sub esi, eax
mov ebx, dword [esp + 0x1c]
neg eax
mov edx, dword [esp + 0x18]
lea ecx, [esp + ebx*4 + 0x104]
add edx, dword [eax + ecx + 4]
add edx, dword [esi + 4]
lea esi, [esp + ebx*4 + 0x204]
mov dword [eax + esi + 4], edx
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x6c]
mov eax, dword [eax]
jmp 0x4ba97d
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
test eax, eax
jne 0x4ba99a
mov edx, dword [esp + 0x74]
dec edx
lea eax, [esp + edx*4 + 0x204]
cmp dword [eax], 0
je 0x4ba985
mov dword [esp + 0x14], eax
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x208]
test eax, eax
jle 0x4baa56
dec dword [esp + 0x78]
add eax, eax
mov dword [esp + 0x208], eax
cmp dword [esp + 0x74], 2
jb 0x4baa48
mov eax, dword [esp + 0x74]
lea ecx, [eax - 1]
shr ecx, 1
je 0x4bb6a6
xor eax, eax
mov edx, dword [esp + eax*8 + 0x20c]
mov esi, edx
shr esi, 0x1f
add edx, edx
or dword [esp + eax*8 + 0x208], esi
mov esi, dword [esp + eax*8 + 0x210]
mov edi, esi
shr edi, 0x1f
add esi, esi
or edx, edi
mov dword [esp + eax*8 + 0x20c], edx
mov dword [esp + eax*8 + 0x210], esi
inc eax
cmp eax, ecx
jb 0x4ba9d2
lea eax, [eax + eax + 1]
mov dword [esp], eax
mov eax, dword [esp]
mov edx, dword [esp + 0x74]
lea ecx, [eax - 1]
lea esi, [edx - 1]
cmp ecx, esi
jae 0x4baa48
mov ecx, eax
mov esi, dword [esp + 0x14]
mov edx, dword [esp + ecx*4 + 0x208]
mov eax, edx
shr eax, 0x1f
add edx, edx
or dword [esp + ecx*4 + 0x204], eax
mov dword [esp + ecx*4 + 0x208], edx
mov eax, dword [esi]
jmp 0x4baa4e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp eax, 1
sbb dword [esp + 0x74], 0
mov eax, dword [esp + 0xc0]
mov edx, eax
shr edx, 0x16
and eax, 0x80000000
and edx, 7
or eax, edx
jne 0x4baa73
mov edx, 6
mov eax, edx
and eax, 2
test dl, 4
je 0x4baa91
test eax, eax
mov eax, 0xaaaa
jne 0x4baa8b
mov eax, 0xfa
mov dword [esp + 0x14], eax
jmp 0x4baab2
test eax, eax
je 0x4baa9f
mov dword [esp + 0x14], 0xfa00
jmp 0x4baab2
mov eax, 0xa8a8
test dl, 1
je 0x4baaae
mov eax, 0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x78]
lea ecx, [eax + 0x432]
mov dword [esp + 0x54], ecx
cmp ecx, 0x35
jle 0x4baacf
mov dword [esp + 0x54], 0x35
jmp 0x4baada
cmp dword [esp + 0x54], 0
js 0x4b9d1d
mov ecx, dword [esp + 0x54]
mov esi, ecx
xor eax, eax
and ecx, 0x1f
mov dword [esp + 0x54], ecx
setne al
sar esi, 5
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], eax
lea edi, [esi + eax]
mov dword [esp + 0x38], edi
cmp edi, dword [esp + 0x74]
jbe 0x4bab19
add edx, 0xfffffffe
test edx, 0xfffffffd
je 0x4bab19
mov esi, ebx
and esi, 8
jmp 0x4bad55
mov edx, edi
mov eax, dword [esp + 0x74]
mov dword [esp + 0x74], edx
mov ecx, dword [esp + edx*4 + 0x204]
mov dword [esp + 0x34], ecx
cmp dword [esp + 0x54], 0
je 0x4bac0a
mov dword [esp + 0x6c], ebx
mov edi, 1
mov ebx, dword [esp + 0x54]
neg ebx
mov edx, ecx
mov esi, edx
lea ecx, [ebx + 0x1f]
add ebx, 0x20
shr esi, cl
and esi, 1
mov dword [esp], ecx
mov ecx, ebx
mov dword [esp + 0x18], esi
mov esi, edx
mov ebx, 1
shl edi, cl
shr esi, cl
mov ecx, dword [esp]
and esi, 1
shl ebx, cl
dec ebx
and ebx, edx
or dword [esp + 0xac], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], esi
cmp eax, dword [esp + 0x38]
jbe 0x4bacb9
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
lea ecx, [ecx + edx + 1]
cmp ecx, eax
ja 0x4bacb9
sub eax, ecx
inc eax
mov edx, eax
shr edx, 1
je 0x4bb6b2
mov edi, edx
mov dword [esp], ecx
lea esi, [esp + ecx*4 + 0x204]
xor edx, edx
mov ecx, dword [esp + 0xac]
or ecx, dword [esi + edx*8]
or ecx, dword [esi + edx*8 + 4]
inc edx
cmp edx, edi
jb 0x4babc9
mov dword [esp + 0xac], ecx
lea esi, [edx + edx + 1]
mov ecx, dword [esp]
lea edx, [esi - 1]
cmp edx, eax
jae 0x4bacb9
add ecx, esi
mov eax, dword [esp + 0xac]
or eax, dword [esp + ecx*4 + 0x200]
mov dword [esp + 0xac], eax
jmp 0x4bacb9
mov esi, edi
and ecx, 1
mov edx, dword [esp + esi*4 + 0x208]
mov edi, edx
add edx, edx
mov dword [esp + 0x1c], ecx
or dword [esp + 0xac], edx
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
shr edi, 0x1f
mov dword [esp + 0x18], edi
lea esi, [ecx + edx + 1]
cmp eax, esi
jbe 0x4bacb1
mov ecx, edx
mov edx, dword [esp + 0x40]
lea ecx, [edx + ecx + 2]
add edx, 2
cmp edx, eax
ja 0x4bacb1
sub eax, ecx
inc eax
mov edx, eax
shr edx, 1
je 0x4bb6bc
mov edi, edx
mov dword [esp], ecx
lea esi, [esp + ecx*4 + 0x204]
xor edx, edx
mov ecx, dword [esp + 0xac]
or ecx, dword [esi + edx*8]
or ecx, dword [esi + edx*8 + 4]
inc edx
cmp edx, edi
jb 0x4bac6f
mov dword [esp + 0xac], ecx
lea esi, [edx + edx + 1]
mov ecx, dword [esp]
mov dword [esp + 0x20], 1
lea edx, [esi - 1]
cmp edx, eax
jae 0x4bacb9
add ecx, esi
mov eax, dword [esp + 0xac]
or eax, dword [esp + ecx*4 + 0x200]
mov dword [esp + 0xac], eax
jmp 0x4bacb9
mov dword [esp + 0x20], 1
mov esi, dword [esp + 0x18]
xor eax, eax
mov edx, dword [esp + 0x1c]
cmp dword [esp + 0xac], 0
setne al
lea edi, [esi + edx*2]
mov esi, ebx
and esi, 8
lea ecx, [esi + eax*4]
mov eax, dword [esp + 0x14]
add ecx, edi
shr eax, cl
test al, 1
je 0x4bad55
cmp dword [esp + 0x38], 0
je 0x4bad34
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
add eax, edx
mov dword [esp + 0x34], eax
cmp eax, edx
jae 0x4bb6c6
mov edx, dword [esp + 0x38]
mov dword [esp + edx*4 + 0x204], eax
mov dword [esp + 0x204], 0
mov edx, dword [esp + 0x74]
dec edx
mov eax, dword [esp + edx*4 + 0x204]
cmp eax, 0xffffffff
je 0x4bad1c
mov dword [esp + 0x74], edx
cmp dword [esp + 0x74], 0
jne 0x4bad4d
inc dword [esp + 0x78]
mov dword [esp + 0x208], 0x80000000
mov dword [esp + 0x74], 1
jmp 0x4bad55
inc eax
mov dword [esp + edx*4 + 0x204], eax
cmp dword [esp + 0x78], 0x400
jle 0x4badd5
mov eax, dword [esp + 0xc0]
and eax, 0x1c00000
cmp eax, 0x400000
je 0x4badcf
cmp eax, 0x1000000
jne 0x4bad88
test esi, esi
je 0x4bad9e
fld qword [0x509028]
jmp 0x4bb209
cmp eax, 0x800000
jne 0x4bad9e
test esi, esi
jne 0x4bad9e
fld qword [0x509020]
jmp 0x4bb209
test esi, esi
je 0x4badaa
fld qword [0x508fc8]
jmp 0x4badb0
fld qword [0x508fc0]
mov eax, ebx
or eax, 0x8000000
test dword [esp + 0xc0], 0x2000
je 0x4bb209
mov ebx, eax
jmp 0x4bb209
test esi, esi
jne 0x4bad7d
jmp 0x4bad93
cmp dword [esp + 0x78], 0xfffffc02
jg 0x4bae63
cmp dword [esp + 0x78], 0xfffffbcf
jl 0x4badfa
test dword [esp + 0xc0], 0x10000000
je 0x4bae63
mov eax, dword [esp + 0xc0]
and eax, 0x1c00000
cmp eax, 0x1000000
jne 0x4bae1c
test esi, esi
jne 0x4bae32
fld qword [0x508ff0]
jmp 0x4bb209
cmp eax, 0x800000
jne 0x4bae32
test esi, esi
je 0x4bae32
fld qword [0x508ff8]
jmp 0x4bb209
test esi, esi
je 0x4bae3e
fld qword [0x508fa8]
jmp 0x4bae44
fld qword [0x508fa0]
mov eax, ebx
or eax, 0x9000000
test dword [esp + 0xc0], 0x4000
je 0x4bb209
mov ebx, eax
jmp 0x4bb209
mov eax, dword [esp + 0x208]
mov dword [esp], eax
cmp dword [esp + 0x74], 2
jae 0x4bae7e
mov dword [esp + 0x14], 0
jmp 0x4bae89
mov eax, dword [esp + 0x20c]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x78], 0xfffffc02
jle 0x4baecd
mov dword [esp + 0x6c], ebx
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp]
mov eax, ebx
shl ecx, 0x14
shr ebx, 0xb
add ecx, 0x3fe00000
mov edx, dword [esp + 0x14]
and ebx, 0xffefffff
shr edx, 0xb
or ebx, ecx
shl eax, 0x15
mov dword [esp], ebx
or edx, eax
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x6c]
jmp 0x4baf1d
mov eax, dword [esp + 0x78]
neg eax
add eax, 0xfffffc0e
mov dword [esp + 0x78], eax
cmp eax, 0x20
jl 0x4baef5
mov ecx, eax
mov eax, dword [esp]
shr eax, cl
mov dword [esp + 0x14], eax
mov dword [esp], 0
jmp 0x4baf1d
mov edx, eax
mov ecx, edx
mov eax, dword [esp + 0x14]
mov edi, dword [esp]
mov dword [esp + 0x6c], ebx
mov ebx, edi
shr eax, cl
neg ecx
shl ebx, cl
mov ecx, edx
shr edi, cl
or eax, ebx
mov dword [esp + 0x14], eax
mov dword [esp], edi
mov ebx, dword [esp + 0x6c]
mov edx, dword [esp]
mov ecx, edx
or ecx, 0x80000000
test esi, esi
mov eax, dword [esp + 0x14]
jne 0x4baf32
mov ecx, edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
fld qword [esp + 0x18]
jmp 0x4bb209
mov edx, dword [esp + 0x78]
mov edi, dword [0x509144]
mov dword [esp + edx*4 + 0x1c8], eax
lea eax, [edx + 1]
mov esi, dword [esp + 0x1c8]
mov dword [esp + 0x74], eax
mov dword [esp + 0xc8], esi
cmp eax, 2
jb 0x4bb7ca
mov esi, 2
je 0x4baf85
mov dword [esp + 0x6c], ebx
xor ebx, ebx
mov dword [esp + 0x70], ebp
jmp 0x4baf96
mov dword [esp + 0x6c], ebx
xor ebx, ebx
mov dword [esp + 0x70], ebp
mov edi, dword [ecx*4 + 0x509120]
mov dword [esp + 0xb0], ecx
mov edx, dword [esp + 0xc8]
cmp esi, 1
jle 0x4bba00
mov dword [esp + 0xc8], 0
mov ecx, 1
mov dword [esp + 0x74], eax
mov dword [esp + 0x80], edx
mov dword [esp + 0x7c], edi
mov eax, dword [esp + 0x7c]
mul dword [esp + 0x80]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edx
mov ebp, dword [esp + 0x84]
mov eax, dword [esp + ecx*4 + 0xc4]
add eax, ebp
cmp eax, ebp
mov dword [esp + ecx*4 + 0xc4], eax
mov eax, ebx
setb al
add eax, dword [esp + 0x88]
mov edx, dword [esp + ecx*4 + 0xc8]
mov dword [esp + ecx*4 + 0xc8], eax
inc ecx
cmp ecx, esi
jl 0x4bafc1
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + esi*4 + 0x1c4]
add ecx, edx
mov dword [esp + 0xc8], ecx
cmp ecx, edx
jae 0x4bb081
mov dword [esp + esi*4 + 0xc8], 0
mov edx, 2
cmp dword [esp + 0xcc], 0xffffffff
je 0x4bb062
lea ebp, [esp + 0xcc]
mov ecx, dword [ebp]
jmp 0x4bb07d
mov dword [esp + edx*4 + 0xc4], 0
inc edx
lea ebp, [esp + edx*4 + 0xc4]
mov ecx, dword [ebp]
cmp ecx, 0xffffffff
je 0x4bb062
inc ecx
mov dword [ebp], ecx
inc esi
cmp esi, eax
ja 0x4bb7be
jne 0x4baf9d
lea esi, [esi]
mov ecx, dword [esp + 0xb0]
jmp 0x4baf8f
neg edx
add edx, 0xf
sub esi, edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x34], esi
cmp dword [esp + 0x54], 9
ja 0x4bb0d8
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
shr eax, 0x1f
fadd qword [eax*8 + 0x5082c0]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
jmp 0x4bb1d8
fild dword [esp + 0x1c8]
mov edx, dword [esp + 0x1c8]
shr edx, 0x1f
cmp dword [esp + 0x78], 2
fadd qword [edx*8 + 0x5082c0]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
jb 0x4bb1b5
fld qword [0x509340]
mov edx, dword [esp + 0x78]
lea esi, [edx - 1]
shr esi, 1
je 0x4bba1b
xor edx, edx
lea esi, [esi]
jmp 0x4bb124
faddp st(2)
fild dword [esp + edx*8 + 0x1cc]
fxch st(1)
fmul st(2), st(0)
fild dword [esp + edx*8 + 0x1d0]
mov edi, dword [esp + edx*8 + 0x1cc]
shr edi, 0x1f
fxch st(2)
fadd qword [edi*8 + 0x5082c0]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
mov edi, dword [esp + edx*8 + 0x1d0]
inc edx
shr edi, 0x1f
faddp st(3)
fmul st(2), st(0)
fxch st(1)
fadd qword [edi*8 + 0x5082c0]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
cmp edx, esi
jb 0x4bb122
faddp st(2)
lea edx, [edx + edx + 1]
mov dword [esp], edx
mov edx, dword [esp]
mov edi, dword [esp + 0x78]
dec edi
lea esi, [edx - 1]
cmp esi, edi
jae 0x4bba68
fmulp st(1)
fild dword [esp + edx*4 + 0x1c8]
mov esi, dword [esp + edx*4 + 0x1c8]
shr esi, 0x1f
fadd qword [esi*8 + 0x5082c0]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
faddp st(1)
fmul qword [ecx*8 + 0x5092f8]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
shr eax, 0x1f
fadd qword [eax*8 + 0x5082c0]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
faddp st(1)
cmp dword [esp + 0x40], 0
jl 0x4bba07
jle 0x4bb202
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x34], 0
fmul qword [eax*8 + 0x5092f8]
je 0x4bb202
mov eax, dword [esp + 0x34]
fmul qword [eax*8 + 0x5092f8]
test bl, 8
je 0x4bb209
fchs
cmp dword [esp + 0xbc], 0
je 0x4bb23b
test dword [esp + 0xc0], 0x40000
je 0x4bb22b
mov eax, dword [esp + 0xbc]
mov dword [eax], ebp
jmp 0x4bb23b
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xb8]
mov dword [edx], eax
mov eax, dword [esp + 0x274]
test eax, eax
je 0x4bb24b
shr ebx, 0x18
mov dword [eax], ebx
mov ecx, dword [esp + 0x244]
mov dword [esp + 0x244], 0
xor ecx, esp
cmp ecx, dword [0x52ec00]
jne 0x4bb5aa
add esp, 0x248
pop ebp
pop ebx
pop edi
pop esi
ret
xor eax, eax
fldz
xor ecx, ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0xac], ecx
jmp 0x4b99cd
fstp st(0)
call fcn.004cba1b
mov ecx, dword [esp + 0x18]
jmp 0x4b9833
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0xb0]
mov ebp, edx
mov dword [esp + 0x40], 0
jmp 0x4b99dc
mov dword [esp], 1
jmp 0x4b9c22
mov edi, dword [esp + 0x74]
shr edi, 1
je 0x4bb677
mov eax, dword [esp + 0x74]
xor esi, esi
mov dword [esp + 0x70], ebp
lea ecx, [esp + eax*4 + 0x204]
lea edx, [esp + eax*4 + 0x1c4]
mov eax, esi
mov ebp, dword [eax + edx]
inc esi
mov dword [eax + ecx], ebp
mov ebp, dword [eax + edx - 4]
mov dword [eax + ecx - 4], ebp
add eax, 0xfffffff8
cmp esi, edi
jb 0x4bb628
mov ebp, dword [esp + 0x70]
lea eax, [esi + esi + 1]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x74]
jae 0x4b9cd1
shl eax, 2
mov ecx, dword [esp + 0x74]
neg eax
lea edx, [esp + ecx*4 + 0x1c4]
mov esi, dword [eax + edx + 4]
lea edi, [esp + ecx*4 + 0x204]
mov dword [eax + edi + 4], esi
jmp 0x4b9cd1
mov eax, 1
jmp 0x4bb646
lea eax, [esp + 0x20c]
mov dword [esp + 0x34], eax
jmp 0x4ba023
lea eax, [esp + 0x18c]
jmp 0x4ba640
mov dword [esp], 1
jmp 0x4ba535
mov dword [esp], 1
jmp 0x4baa11
mov esi, 1
jmp 0x4babe3
mov esi, 1
jmp 0x4bac89
cmp dword [esp + 0x54], 0
je 0x4bb6e9
mov ecx, dword [esp + 0x38]
mov eax, edx
dec eax
not eax
mov edx, dword [esp + 0x34]
and edx, eax
mov dword [esp + 0x34], edx
mov dword [esp + ecx*4 + 0x204], edx
jmp 0x4bb6f4
mov edx, dword [esp + 0x38]
mov dword [esp + edx*4 + 0x204], eax
cmp dword [esp + 0x34], 0
jne 0x4bad55
mov eax, dword [esp + 0x74]
dec eax
cmp dword [esp + eax*4 + 0x204], 0
je 0x4bb703
mov dword [esp + 0x74], eax
jmp 0x4bad55
mov eax, 1
jmp 0x4ba936
mov eax, 1
jmp 0x4ba789
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
je 0x4ba57c
jmp 0x4ba580
mov eax, 1
jmp 0x4ba449
mov eax, 1
jmp 0x4ba2ab
mov dword [esp + 0x20], 8
lea ecx, [esp + 0x18c]
jmp 0x4ba1b7
neg edx
mov ecx, edx
sar ecx, 3
movzx eax, word [ecx*2 + 0x508e00]
mov esi, eax
shr esi, 5
cmp esi, edx
jge 0x4bb78a
movzx eax, word [ecx*2 + 0x508e02]
mov esi, eax
shr esi, 5
and eax, 0x1f
add dword [esp + 0x40], esi
movsx edx, word [eax*2 + 0x508f5a]
mov ecx, dword [eax*8 + 0x508d84]
mov eax, dword [eax*8 + 0x508d80]
mov dword [esp + 0x18], edx
mov dword [esp + 0x148], ecx
mov dword [esp + 0x14c], eax
jmp 0x4ba15b
mov dword [esp + 0x74], eax
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
cmp dword [esp + eax*4 + 0xc4], 0
jne 0x4bb9e7
mov esi, eax
dec esi
lea ecx, [esp + esi*4 + 0xc4]
mov edx, dword [ecx]
lea eax, [esi*4]
test edx, edx
je 0x4bb7da
mov dword [esp + 0x74], esi
mov dword [esp + 0x34], 0
test edx, edx
jle 0x4bb810
mov esi, dword [esp + 0x34]
add edx, edx
inc esi
test edx, edx
jg 0x4bb803
mov dword [esp + 0x34], esi
mov dword [ecx], edx
mov ecx, dword [esp + 0x74]
shl ecx, 5
mov esi, dword [esp + 0x34]
sub ecx, esi
mov dword [esp + 0x78], ecx
test esi, esi
je 0x4bb924
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x208], edx
lea edx, [ecx - 1]
cmp ecx, 1
je 0x4bb9a6
mov ecx, edx
lea eax, [esp + eax + 0x204]
mov dword [esp + 0x14], eax
shr ecx, 1
mov dword [esp + 0x1c], ecx
je 0x4bb9d6
mov edi, esi
mov esi, dword [esp + 0x74]
xor eax, eax
neg edi
mov dword [esp], edx
lea ecx, [esp + esi*4 + 0xc0]
mov dword [esp + 0x20], ecx
lea ecx, [esi*4 - 4]
neg ecx
add ecx, dword [esp + 0x14]
mov edx, eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebp
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov ebx, dword [edx + edi]
mov esi, ebx
shr esi, cl
mov edi, dword [edx + edi - 4]
add edx, 0xfffffff8
or dword [ebp + eax*8], esi
mov esi, edi
mov ecx, dword [esp + 0x34]
shl ebx, cl
mov ecx, dword [esp + 0x38]
shr esi, cl
mov ecx, dword [esp + 0x34]
or ebx, esi
shl edi, cl
mov dword [ebp + eax*8 + 4], ebx
mov dword [ebp + eax*8 + 8], edi
inc eax
cmp eax, dword [esp + 0x1c]
jb 0x4bb890
mov edx, dword [esp]
lea ecx, [eax + eax + 1]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
lea eax, [ecx - 1]
cmp eax, edx
jae 0x4bb9b1
mov dword [esp + 0x6c], ebx
mov ebx, ecx
sub ebx, edx
sub edx, ecx
mov eax, dword [esp + 0x34]
mov ecx, eax
neg ecx
mov edi, dword [esp + 0x14]
mov edx, dword [esp + edx*4 + 0xc8]
mov esi, edx
shr esi, cl
mov ecx, eax
mov eax, edi
shl edx, cl
or dword [edi + ebx*4 - 4], esi
mov dword [eax + ebx*4], edx
mov ebx, dword [esp + 0x6c]
jmp 0x4bb9b1
cmp dword [esp + 0x74], 0
je 0x4bb9a6
mov edi, dword [esp + 0x74]
lea edx, [esp + eax + 0x204]
mov dword [esp + 0x14], edx
shr edi, 1
je 0x4bb9e0
mov edx, dword [esp + 0x74]
xor esi, esi
neg eax
add eax, dword [esp + 0x14]
mov dword [esp + 0x70], ebp
lea ecx, [esp + edx*4 + 0xc4]
mov edx, esi
mov ebp, dword [edx + ecx]
mov dword [eax + esi*8 + 4], ebp
mov ebp, dword [edx + ecx - 4]
add edx, 0xfffffff8
mov dword [eax + esi*8 + 8], ebp
inc esi
cmp esi, edi
jb 0x4bb95b
mov ebp, dword [esp + 0x70]
lea eax, [esi + esi + 1]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x74]
jae 0x4bb9b1
mov esi, dword [esp + 0x74]
lea edx, [eax*4]
neg edx
sub eax, esi
lea ecx, [esp + esi*4 + 0xc4]
mov edi, dword [edx + ecx + 4]
mov edx, dword [esp + 0x14]
mov dword [edx + eax*4], edi
jmp 0x4bb9b1
lea eax, [esp + eax + 0x204]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
cmp dword [eax], 0
jne 0x4b9e12
mov eax, dword [esp + 0x74]
dec eax
cmp dword [esp + eax*4 + 0x204], 0
je 0x4bb9c2
mov dword [esp + 0x74], eax
jmp 0x4b9e12
mov ecx, 1
jmp 0x4bb8e2
mov eax, 1
jmp 0x4bb97a
mov eax, dword [esp + 0x78]
lea eax, [eax*4 + 4]
lea ecx, [esp + eax + 0xc4]
mov edx, dword [ecx]
jmp 0x4bb7f3
mov ecx, ebx
jmp 0x4bb028
mov eax, dword [esp + 0x40]
shl eax, 3
neg eax
fdiv qword [eax + 0x5092f8]
jmp 0x4bb202
mov dword [esp], 1
jmp 0x4bb17e
mov dword [esp + 0xb4], eax
xor eax, eax
xor ecx, ecx
fldz
mov dword [esp + 0xb8], ebp
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0xac], ecx
jmp 0x4b99cd
mov ebp, edi
jmp 0x4b95f6
xor ebp, ebp
mov ebx, 0x6000000
fldz
jmp 0x4bb209
fstp st(0)
jmp 0x4bb1b5