Function at 0x4b77c0
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 [0x543b10]
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 0x4b7932
test dword [esp + 0xc0], 0x10000
je 0x4b792b
lea eax, [esp + 0x27b]
and eax, 0xfffffffc
movsx edx, byte [eax]
jmp 0x4b7937
mov edx, 0x2c
jmp 0x4b7937
mov edx, 0x2e
test esi, esi
jle 0x4b9dfa
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 0x4b79a2
lea ecx, [eax - 9]
cmp ecx, 4
ja 0x4b9df3
mov ebp, edi
lea eax, [ebp + 1]
mov ebp, eax
dec esi
je 0x4b9dc7
movsx eax, byte [eax]
lea ecx, [eax - 9]
cmp ecx, 4
jbe 0x4b797f
cmp eax, 0x20
je 0x4b797f
mov dword [esp + 0xb8], ebp
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xb4], ecx
cmp eax, 0x2d
jne 0x4b79ba
add ebx, 8
jmp 0x4b79bf
cmp eax, 0x2b
jne 0x4b79d0
inc dword [esp + 0xb8]
add ebx, 2
dec esi
je 0x4b9616
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 0x4b7c50
movzx eax, word [eax*2 + 0x50aa70]
add eax, 0x4b7a2f
jmp eax
fstp st(0)
mov dword [esp + 0xb4], edx
test bl, 8
je 0x4b7b8f
fld qword [0x50b768]
jmp 0x4b7b95
fld qword [0x50b760]
and ebx, 0xfffffff7
mov eax, ebx
mov ecx, dword [esp + 0xc0]
or eax, 0xc000000
test ecx, 0x40000000
je 0x4b7bb0
mov ebx, eax
test cl, 2
je 0x4b7c82
test esi, esi
je 0x4b7c82
cmp byte [edx], 0x20
jne 0x4b7c82
inc edx
dec esi
jne 0x4b7bc1
jmp 0x4b7c82
cmp byte [eax - 1], 0x66
je 0x4b7b79
mov edx, ecx
neg ecx
lea esi, [eax + ecx]
jmp 0x4b7c82
cmp ebp, 9
jne 0x4b7c65
test byte [esp + 0xc0], 1
jne 0x4b7d53
jmp 0x4b7c82
cmp ebp, 0x20
jne 0x4b7c82
test byte [esp + 0xc0], 2
jne 0x4b7d53
test byte [esp + 0xc0], 0x40
jne 0x4b7ca5
cmp ebp, dword [esp + 0x38]
jne 0x4b9979
test bl, 1
jne 0x4b9979
mov dword [esp + 0x58], 0
or ebx, 1
jmp 0x4b7d53
mov ebp, 0x30
cmp dword [esp + 0x54], 0
je 0x4b7d40
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 0x4b7d0b
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 0x4b7d53
cmp dword [esp + 0x78], 2
jae 0x4b7d37
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 0x4b7d53
or dword [esp + 0xac], ebp
jmp 0x4b7d53
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 0x4b7a11
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 0x4b7d8a
mov ebp, dword [esp + 0xb4]
and edx, 0x40
mov dword [esp + 0x14], edx
je 0x4b7d9a
mov ebp, dword [esp + 0xb8]
test dword [esp + 0xc0], 0x8000
je 0x4b7dd5
test dword [esp + 0xc0], 0x80000000
je 0x4b7dc6
test esi, esi
je 0x4b7dd5
mov edx, dword [esp + 0xb8]
cmp byte [edx], 0
jne 0x4b7dca
jmp 0x4b7dd5
test esi, esi
je 0x4b7dd5
or ebx, 0x3000000
jmp 0x4b95a9
mov edx, ebx
and edx, 0x200
mov dword [esp], edx
je 0x4b7dec
mov edx, ebx
and edx, 0x54
cmp edx, 0x54
jne 0x4b7dca
cmp dword [esp + 0x54], 0
jne 0x4b7e25
mov eax, ebx
and eax, 0xc
cmp eax, 0xc
jne 0x4b7dff
fchs
mov eax, dword [esp + 0xc0]
mov edx, ebx
and eax, 0x28000
or edx, 0x3000000
cmp eax, 0x28000
jne 0x4b95a9
mov ebx, edx
jmp 0x4b95a9
test bl, 0x20
je 0x4b7e31
cmp dword [esp + 0x14], 0
je 0x4b7dca
fstp st(0)
test bl, 0x10
je 0x4b7e88
cmp dword [esp + 0x3c], 6
jbe 0x4b7e55
mov esi, ebx
and esi, 8
test ebx, 0x80
jne 0x4b919a
jmp 0x4b90ff
mov edx, dword [esp + 0x40]
mov edi, edx
neg edi
test ebx, 0x80
mov esi, dword [esp + 0xc8]
jne 0x4b7e6e
mov edi, edx
test dword [esp + 0xc0], 0x400
jne 0x4b7e80
mov esi, 0
sub edi, esi
mov dword [esp + 0x18], edi
jmp 0x4b7e95
mov edx, dword [esp + 0xc8]
neg edx
mov dword [esp + 0x18], edx
cmp dword [esp], 0
je 0x4b808d
shl ecx, 2
neg ecx
shl eax, cl
cmp dword [esp + 0x54], 8
ja 0x4b7edc
mov dword [esp + 0x14], 0
test eax, eax
jle 0x4b7ec8
mov edx, dword [esp + 0x14]
add eax, eax
inc edx
test eax, eax
jg 0x4b7ebd
mov dword [esp + 0x14], edx
mov dword [esp + 0x208], eax
mov dword [esp + 0x74], 1
jmp 0x4b8071
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 0x4b7f03
mov eax, ecx
dec eax
cmp dword [esp + eax*4 + 0x1c4], 0
je 0x4b7ef4
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x1c8]
mov dword [esp + 0x14], 0
test eax, eax
jle 0x4b8000
mov edx, dword [esp + 0x14]
add eax, eax
inc edx
test eax, eax
jg 0x4b7f1e
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c8], eax
cmp dword [esp + 0x14], 0
je 0x4b8000
mov dword [esp + 0x208], eax
cmp dword [esp + 0x74], 1
jbe 0x4b8071
mov eax, dword [esp + 0x74]
lea eax, [eax - 1]
shr eax, 1
je 0x4b999a
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 0x4b7f70
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 0x4b8071
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 0x4b8071
cmp dword [esp + 0x74], 0
je 0x4b8071
cmp dword [esp + 0x74], 0x18
jle 0x4b99a6
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 0x4b99a6
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.004ca960
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 0x4b8df6
test bl, 1
je 0x4b809c
mov edx, dword [esp + 0x58]
sub dword [esp + 0x18], edx
jmp 0x4b80ab
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 0x4b80c7
mov esi, ebx
and esi, 8
jmp 0x4b919a
cmp edx, 0x135
jle 0x4b80d9
mov esi, ebx
and esi, 8
jmp 0x4b90ff
mov edi, esi
mov esi, dword [esp + 0x54]
lea edx, [esi - 0x1b]
test edx, edx
lea edx, [edi + esi - 0x1b]
jg 0x4b80ec
mov edx, edi
mov dword [esp + 0x40], edx
test edx, edx
jne 0x4b8108
cmp dword [esp + 0x54], 0x12
ja 0x4b8108
mov dword [esp + 0x34], 0
jmp 0x4b9452
mov edi, ebx
or edi, 0x100
lea esi, [edx + 0x16]
cmp esi, 0x2c
ja 0x4b811a
mov ebx, edi
cmp dword [esp + 0x54], 0xf
jbe 0x4b8147
cmp dword [esp + 0x54], 0x10
jbe 0x4b8136
mov edx, ebx
and edx, 0x100
mov dword [esp + 0x18], edx
jmp 0x4b8170
cmp dword [esp + 0x1c8], 0x35afe535
jb 0x4b8147
test al, 1
jne 0x4b8128
mov edx, ebx
and edx, 0x100
mov dword [esp + 0x18], edx
jne 0x4b80fb
cmp dword [esp + 0x40], 0
jl 0x4b8170
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x54]
lea edi, [edx + esi]
cmp edi, 0x25
jle 0x4b9443
cmp dword [esp + 0x54], 9
ja 0x4b92e3
mov dword [esp + 0x78], 0
test eax, eax
jle 0x4b8196
mov edx, dword [esp + 0x78]
add eax, eax
inc edx
test eax, eax
jg 0x4b818b
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 0x4b827f
mov eax, dword [esp + 0x74]
shl eax, 5
cmp eax, 0x40
ja 0x4b827f
mov edx, dword [esp + 0x20c]
test edx, 0x7ff
jne 0x4b827f
cmp dword [esp + 0x74], 2
mov eax, dword [esp + 0x208]
jae 0x4b81f3
mov edx, 0
mov dword [esp], eax
cmp dword [esp + 0x78], 0xfffffc02
jle 0x4b8229
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 0x4b8263
mov eax, dword [esp + 0x78]
neg eax
add eax, 0xfffffc0e
mov dword [esp + 0x78], eax
cmp eax, 0x20
jl 0x4b824d
mov ecx, eax
mov edx, dword [esp]
shr edx, cl
mov dword [esp], 0
jmp 0x4b8263
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 0x4b9578
cmp dword [esp + 0x40], 0
je 0x4b8df6
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 0x4b83b4
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 0x4b838c
mov eax, 1
mov dword [esp + 0x204], 0
mov dword [esp + 0x74], eax
cmp dword [esp + 0x208], 0xffffffff
je 0x4b8344
lea eax, [esp + 0x208]
mov dword [esp + 0x34], eax
mov eax, dword [eax]
jmp 0x4b8364
mov edx, eax
dec edx
lea ecx, [esp + edx*4 + 0x204]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x4b8346
mov dword [esp + 0x74], edx
mov dword [esp + 0x34], ecx
cmp dword [esp + 0x74], 0
je 0x4b836d
mov edx, dword [esp + 0x34]
inc eax
mov dword [edx], eax
jmp 0x4b83c3
inc dword [esp + 0x78]
lea eax, [esp + 0x208]
mov dword [eax], 0x80000000
mov dword [esp + 0x74], 1
mov dword [esp + 0x34], eax
jmp 0x4b83c3
mov eax, 2
mov dword [esp + 0x74], eax
test edx, edx
jne 0x4b9a1e
dec eax
lea edx, [esp + eax*4 + 0x204]
cmp dword [edx], 0
je 0x4b839d
mov dword [esp + 0x74], eax
mov dword [esp + 0x34], edx
jmp 0x4b83c3
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 0x4b8495
mov esi, edx
mov dword [esp + 0x14c], eax
mov dword [esp + 0x148], eax
movsx edx, word [esi*2 + 0x50b4be]
mov ecx, dword [esi*8 + 0x50b2dc]
mov edi, dword [esi*8 + 0x50b2d8]
mov dword [esp + 0x58], 2
mov dword [esp + 0x38], edx
mov dword [esp + 0x188], ecx
mov dword [esp + 0x18c], edi
test edi, edi
jne 0x4b9a2e
mov edx, dword [esp + 0x58]
dec edx
lea eax, [esp + edx*4 + 0x184]
cmp dword [eax], 0
je 0x4b847f
mov dword [esp + 0x58], edx
jmp 0x4b89e0
cmp dword [esp + 0x40], 0
jl 0x4b9b05
mov eax, edx
mov edx, eax
sar edx, 3
lea esi, [edx + edx]
movzx ecx, word [esi + 0x50b6a2]
lea edi, [edx + edx + 2]
shr ecx, 5
cmp ecx, eax
jle 0x4b84be
mov edi, esi
movzx edx, word [edi + 0x50b6a0]
mov esi, edx
and esi, 0x1f
shr edx, 5
sub eax, edx
mov dword [esp + 0x40], eax
movsx eax, word [esi*2 + 0x50b718]
mov dword [esp + 0x18], eax
mov ecx, dword [esi*8 + 0x50b624]
mov eax, dword [esi*8 + 0x50b620]
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 + 0x50b4be]
mov ecx, dword [esi*8 + 0x50b2dc]
mov edi, dword [esi*8 + 0x50b2d8]
mov dword [esp + 0x14], edx
mov dword [esp + 0x188], ecx
mov dword [esp + 0x18c], edi
test edi, edi
jne 0x4b9af1
mov esi, dword [esp + 0x54]
dec esi
lea ecx, [esp + esi*4 + 0x184]
cmp dword [ecx], 0
lea edx, [esi*4]
je 0x4b853b
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 0x4b867b
mov eax, dword [esp + 0x54]
shr eax, 1
je 0x4b9ae7
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 0x4b8621
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 0x4b867b
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 0x4b871f
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 0x4b869e
dec ecx
jne 0x4b868b
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 0x4b8835
mov ecx, edx
mov dword [esp + 0x20], 0
shr ecx, 1
je 0x4b9add
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 0x4b87a1
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 0x4b882f
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 0x4b8835
mov eax, dword [esp + 0x1c]
mov esi, dword [eax]
test esi, esi
jne 0x4b8852
mov edx, dword [esp + 0x58]
dec edx
lea eax, [esp + edx*4 + 0x184]
cmp dword [eax], 0
je 0x4b883d
mov dword [esp + 0x1c], eax
mov dword [esp + 0x58], edx
mov esi, dword [esp + 0x188]
test esi, esi
jle 0x4b9acb
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 0x4b890f
mov eax, dword [esp + 0x58]
lea ecx, [eax - 1]
shr ecx, 1
je 0x4b9a3a
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 0x4b8896
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 0x4b8904
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 0x4b891c
jmp 0x4b892b
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
jne 0x4b89d5
dec dword [esp + 0x58]
cmp dword [esp + 0x58], 2
jb 0x4b89d5
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 0x4b89ae
mov eax, 1
mov dword [esp + 0x184], 0
mov dword [esp + 0x58], eax
cmp dword [esp + 0x188], 0xffffffff
je 0x4b8972
lea eax, [esp + 0x188]
mov edx, dword [eax]
jmp 0x4b898e
mov ecx, eax
dec ecx
lea eax, [esp + ecx*4 + 0x184]
mov edx, dword [eax]
cmp edx, 0xffffffff
je 0x4b8974
mov dword [esp + 0x58], ecx
cmp dword [esp + 0x58], 0
je 0x4b8993
inc edx
mov dword [eax], edx
jmp 0x4b89e0
inc dword [esp + 0x38]
lea eax, [esp + 0x188]
mov dword [eax], 0x80000000
mov dword [esp + 0x58], 1
jmp 0x4b89e0
mov dword [esp + 0x58], 2
test edx, edx
jne 0x4b9a2e
mov edx, dword [esp + 0x58]
dec edx
lea eax, [esp + edx*4 + 0x184]
cmp dword [eax], 0
je 0x4b89c2
mov dword [esp + 0x58], edx
jmp 0x4b89e0
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 0x4b8ab7
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 0x4b8a50
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 0x4b8b5b
mov edx, dword [esp + 0x3c]
shr edx, 1
je 0x4b9ac1
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 0x4b8b07
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 0x4b8b5b
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 0x4b8c1a
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 0x4b8c07
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 0x4b8b91
mov eax, dword [esp + 0x58]
dec esi
jne 0x4b8b79
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 0x4b8d1d
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x18], 0
shr edx, 1
je 0x4b9ab7
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 0x4b8c8e
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 0x4b8d17
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 0x4b8d1d
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
test eax, eax
jne 0x4b8d3a
mov edx, dword [esp + 0x74]
dec edx
lea eax, [esp + edx*4 + 0x204]
cmp dword [eax], 0
je 0x4b8d25
mov dword [esp + 0x14], eax
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x208]
test eax, eax
jle 0x4b8df6
dec dword [esp + 0x78]
add eax, eax
mov dword [esp + 0x208], eax
cmp dword [esp + 0x74], 2
jb 0x4b8de8
mov eax, dword [esp + 0x74]
lea ecx, [eax - 1]
shr ecx, 1
je 0x4b9a46
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 0x4b8d72
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 0x4b8de8
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 0x4b8dee
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 0x4b8e13
mov edx, 6
mov eax, edx
and eax, 2
test dl, 4
je 0x4b8e31
test eax, eax
mov eax, 0xaaaa
jne 0x4b8e2b
mov eax, 0xfa
mov dword [esp + 0x14], eax
jmp 0x4b8e52
test eax, eax
je 0x4b8e3f
mov dword [esp + 0x14], 0xfa00
jmp 0x4b8e52
mov eax, 0xa8a8
test dl, 1
je 0x4b8e4e
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 0x4b8e6f
mov dword [esp + 0x54], 0x35
jmp 0x4b8e7a
cmp dword [esp + 0x54], 0
js 0x4b80bd
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 0x4b8eb9
add edx, 0xfffffffe
test edx, 0xfffffffd
je 0x4b8eb9
mov esi, ebx
and esi, 8
jmp 0x4b90f5
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 0x4b8faa
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 0x4b9059
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
lea ecx, [ecx + edx + 1]
cmp ecx, eax
ja 0x4b9059
sub eax, ecx
inc eax
mov edx, eax
shr edx, 1
je 0x4b9a52
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 0x4b8f69
mov dword [esp + 0xac], ecx
lea esi, [edx + edx + 1]
mov ecx, dword [esp]
lea edx, [esi - 1]
cmp edx, eax
jae 0x4b9059
add ecx, esi
mov eax, dword [esp + 0xac]
or eax, dword [esp + ecx*4 + 0x200]
mov dword [esp + 0xac], eax
jmp 0x4b9059
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 0x4b9051
mov ecx, edx
mov edx, dword [esp + 0x40]
lea ecx, [edx + ecx + 2]
add edx, 2
cmp edx, eax
ja 0x4b9051
sub eax, ecx
inc eax
mov edx, eax
shr edx, 1
je 0x4b9a5c
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 0x4b900f
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 0x4b9059
add ecx, esi
mov eax, dword [esp + 0xac]
or eax, dword [esp + ecx*4 + 0x200]
mov dword [esp + 0xac], eax
jmp 0x4b9059
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 0x4b90f5
cmp dword [esp + 0x38], 0
je 0x4b90d4
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
add eax, edx
mov dword [esp + 0x34], eax
cmp eax, edx
jae 0x4b9a66
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 0x4b90bc
mov dword [esp + 0x74], edx
cmp dword [esp + 0x74], 0
jne 0x4b90ed
inc dword [esp + 0x78]
mov dword [esp + 0x208], 0x80000000
mov dword [esp + 0x74], 1
jmp 0x4b90f5
inc eax
mov dword [esp + edx*4 + 0x204], eax
cmp dword [esp + 0x78], 0x400
jle 0x4b9175
mov eax, dword [esp + 0xc0]
and eax, 0x1c00000
cmp eax, 0x400000
je 0x4b916f
cmp eax, 0x1000000
jne 0x4b9128
test esi, esi
je 0x4b913e
fld qword [0x50b7c8]
jmp 0x4b95a9
cmp eax, 0x800000
jne 0x4b913e
test esi, esi
jne 0x4b913e
fld qword [0x50b7c0]
jmp 0x4b95a9
test esi, esi
je 0x4b914a
fld qword [0x50b768]
jmp 0x4b9150
fld qword [0x50b760]
mov eax, ebx
or eax, 0x8000000
test dword [esp + 0xc0], 0x2000
je 0x4b95a9
mov ebx, eax
jmp 0x4b95a9
test esi, esi
jne 0x4b911d
jmp 0x4b9133
cmp dword [esp + 0x78], 0xfffffc02
jg 0x4b9203
cmp dword [esp + 0x78], 0xfffffbcf
jl 0x4b919a
test dword [esp + 0xc0], 0x10000000
je 0x4b9203
mov eax, dword [esp + 0xc0]
and eax, 0x1c00000
cmp eax, 0x1000000
jne 0x4b91bc
test esi, esi
jne 0x4b91d2
fld qword [0x50b790]
jmp 0x4b95a9
cmp eax, 0x800000
jne 0x4b91d2
test esi, esi
je 0x4b91d2
fld qword [0x50b798]
jmp 0x4b95a9
test esi, esi
je 0x4b91de
fld qword [0x50b748]
jmp 0x4b91e4
fld qword [0x50b740]
mov eax, ebx
or eax, 0x9000000
test dword [esp + 0xc0], 0x4000
je 0x4b95a9
mov ebx, eax
jmp 0x4b95a9
mov eax, dword [esp + 0x208]
mov dword [esp], eax
cmp dword [esp + 0x74], 2
jae 0x4b921e
mov dword [esp + 0x14], 0
jmp 0x4b9229
mov eax, dword [esp + 0x20c]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x78], 0xfffffc02
jle 0x4b926d
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 0x4b92bd
mov eax, dword [esp + 0x78]
neg eax
add eax, 0xfffffc0e
mov dword [esp + 0x78], eax
cmp eax, 0x20
jl 0x4b9295
mov ecx, eax
mov eax, dword [esp]
shr eax, cl
mov dword [esp + 0x14], eax
mov dword [esp], 0
jmp 0x4b92bd
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 0x4b92d2
mov ecx, edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
fld qword [esp + 0x18]
jmp 0x4b95a9
mov edx, dword [esp + 0x78]
mov edi, dword [0x50b8e4]
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 0x4b9b6a
mov esi, 2
je 0x4b9325
mov dword [esp + 0x6c], ebx
xor ebx, ebx
mov dword [esp + 0x70], ebp
jmp 0x4b9336
mov dword [esp + 0x6c], ebx
xor ebx, ebx
mov dword [esp + 0x70], ebp
mov edi, dword [ecx*4 + 0x50b8c0]
mov dword [esp + 0xb0], ecx
mov edx, dword [esp + 0xc8]
cmp esi, 1
jle 0x4b9da0
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 0x4b9361
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 0x4b9421
mov dword [esp + esi*4 + 0xc8], 0
mov edx, 2
cmp dword [esp + 0xcc], 0xffffffff
je 0x4b9402
lea ebp, [esp + 0xcc]
mov ecx, dword [ebp]
jmp 0x4b941d
mov dword [esp + edx*4 + 0xc4], 0
inc edx
lea ebp, [esp + edx*4 + 0xc4]
mov ecx, dword [ebp]
cmp ecx, 0xffffffff
je 0x4b9402
inc ecx
mov dword [ebp], ecx
inc esi
cmp esi, eax
ja 0x4b9b5e
jne 0x4b933d
lea esi, [esi]
mov ecx, dword [esp + 0xb0]
jmp 0x4b932f
neg edx
add edx, 0xf
sub esi, edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x34], esi
cmp dword [esp + 0x54], 9
ja 0x4b9478
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
shr eax, 0x1f
fadd qword [eax*8 + 0x50aa60]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
jmp 0x4b9578
fild dword [esp + 0x1c8]
mov edx, dword [esp + 0x1c8]
shr edx, 0x1f
cmp dword [esp + 0x78], 2
fadd qword [edx*8 + 0x50aa60]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
jb 0x4b9555
fld qword [0x50bae0]
mov edx, dword [esp + 0x78]
lea esi, [edx - 1]
shr esi, 1
je 0x4b9dbb
xor edx, edx
lea esi, [esi]
jmp 0x4b94c4
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 + 0x50aa60]
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 + 0x50aa60]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
cmp edx, esi
jb 0x4b94c2
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 0x4b9e08
fmulp st(1)
fild dword [esp + edx*4 + 0x1c8]
mov esi, dword [esp + edx*4 + 0x1c8]
shr esi, 0x1f
fadd qword [esi*8 + 0x50aa60]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
faddp st(1)
fmul qword [ecx*8 + 0x50ba98]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
shr eax, 0x1f
fadd qword [eax*8 + 0x50aa60]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
faddp st(1)
cmp dword [esp + 0x40], 0
jl 0x4b9da7
jle 0x4b95a2
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x34], 0
fmul qword [eax*8 + 0x50ba98]
je 0x4b95a2
mov eax, dword [esp + 0x34]
fmul qword [eax*8 + 0x50ba98]
test bl, 8
je 0x4b95a9
fchs
cmp dword [esp + 0xbc], 0
je 0x4b95db
test dword [esp + 0xc0], 0x40000
je 0x4b95cb
mov eax, dword [esp + 0xbc]
mov dword [eax], ebp
jmp 0x4b95db
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xb8]
mov dword [edx], eax
mov eax, dword [esp + 0x274]
test eax, eax
je 0x4b95eb
shr ebx, 0x18
mov dword [eax], ebx
mov ecx, dword [esp + 0x244]
mov dword [esp + 0x244], 0
xor ecx, esp
cmp ecx, dword [0x543b10]
jne 0x4b994a
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 0x4b7d6d
fstp st(0)
call fcn.004cf95b
mov ecx, dword [esp + 0x18]
jmp 0x4b7bd3
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0xb0]
mov ebp, edx
mov dword [esp + 0x40], 0
jmp 0x4b7d7c
mov dword [esp], 1
jmp 0x4b7fc2
mov edi, dword [esp + 0x74]
shr edi, 1
je 0x4b9a17
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 0x4b99c8
mov ebp, dword [esp + 0x70]
lea eax, [esi + esi + 1]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x74]
jae 0x4b8071
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 0x4b8071
mov eax, 1
jmp 0x4b99e6
lea eax, [esp + 0x20c]
mov dword [esp + 0x34], eax
jmp 0x4b83c3
lea eax, [esp + 0x18c]
jmp 0x4b89e0
mov dword [esp], 1
jmp 0x4b88d5
mov dword [esp], 1
jmp 0x4b8db1
mov esi, 1
jmp 0x4b8f83
mov esi, 1
jmp 0x4b9029
cmp dword [esp + 0x54], 0
je 0x4b9a89
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 0x4b9a94
mov edx, dword [esp + 0x38]
mov dword [esp + edx*4 + 0x204], eax
cmp dword [esp + 0x34], 0
jne 0x4b90f5
mov eax, dword [esp + 0x74]
dec eax
cmp dword [esp + eax*4 + 0x204], 0
je 0x4b9aa3
mov dword [esp + 0x74], eax
jmp 0x4b90f5
mov eax, 1
jmp 0x4b8cd6
mov eax, 1
jmp 0x4b8b29
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
je 0x4b891c
jmp 0x4b8920
mov eax, 1
jmp 0x4b87e9
mov eax, 1
jmp 0x4b864b
mov dword [esp + 0x20], 8
lea ecx, [esp + 0x18c]
jmp 0x4b8557
neg edx
mov ecx, edx
sar ecx, 3
movzx eax, word [ecx*2 + 0x50b5a0]
mov esi, eax
shr esi, 5
cmp esi, edx
jge 0x4b9b2a
movzx eax, word [ecx*2 + 0x50b5a2]
mov esi, eax
shr esi, 5
and eax, 0x1f
add dword [esp + 0x40], esi
movsx edx, word [eax*2 + 0x50b6fa]
mov ecx, dword [eax*8 + 0x50b524]
mov eax, dword [eax*8 + 0x50b520]
mov dword [esp + 0x18], edx
mov dword [esp + 0x148], ecx
mov dword [esp + 0x14c], eax
jmp 0x4b84fb
mov dword [esp + 0x74], eax
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
cmp dword [esp + eax*4 + 0xc4], 0
jne 0x4b9d87
mov esi, eax
dec esi
lea ecx, [esp + esi*4 + 0xc4]
mov edx, dword [ecx]
lea eax, [esi*4]
test edx, edx
je 0x4b9b7a
mov dword [esp + 0x74], esi
mov dword [esp + 0x34], 0
test edx, edx
jle 0x4b9bb0
mov esi, dword [esp + 0x34]
add edx, edx
inc esi
test edx, edx
jg 0x4b9ba3
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 0x4b9cc4
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x208], edx
lea edx, [ecx - 1]
cmp ecx, 1
je 0x4b9d46
mov ecx, edx
lea eax, [esp + eax + 0x204]
mov dword [esp + 0x14], eax
shr ecx, 1
mov dword [esp + 0x1c], ecx
je 0x4b9d76
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 0x4b9c30
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 0x4b9d51
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 0x4b9d51
cmp dword [esp + 0x74], 0
je 0x4b9d46
mov edi, dword [esp + 0x74]
lea edx, [esp + eax + 0x204]
mov dword [esp + 0x14], edx
shr edi, 1
je 0x4b9d80
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 0x4b9cfb
mov ebp, dword [esp + 0x70]
lea eax, [esi + esi + 1]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x74]
jae 0x4b9d51
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 0x4b9d51
lea eax, [esp + eax + 0x204]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
cmp dword [eax], 0
jne 0x4b81b2
mov eax, dword [esp + 0x74]
dec eax
cmp dword [esp + eax*4 + 0x204], 0
je 0x4b9d62
mov dword [esp + 0x74], eax
jmp 0x4b81b2
mov ecx, 1
jmp 0x4b9c82
mov eax, 1
jmp 0x4b9d1a
mov eax, dword [esp + 0x78]
lea eax, [eax*4 + 4]
lea ecx, [esp + eax + 0xc4]
mov edx, dword [ecx]
jmp 0x4b9b93
mov ecx, ebx
jmp 0x4b93c8
mov eax, dword [esp + 0x40]
shl eax, 3
neg eax
fdiv qword [eax + 0x50ba98]
jmp 0x4b95a2
mov dword [esp], 1
jmp 0x4b951e
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 0x4b7d6d
mov ebp, edi
jmp 0x4b7996
xor ebp, ebp
mov ebx, 0x6000000
fldz
jmp 0x4b95a9
fstp st(0)
jmp 0x4b9555