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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push esi
push edi
push ebx
sub esp, 0xa4
mov esi, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov edi, dword [esi + 0xc]
mov ebx, edi
and ebx, 0x7fffffff
mov dword [esp + 0x10], ebx
mov eax, dword [edx + 0xc]
mov ecx, eax
mov ebx, dword [edx + 8]
and ecx, 0x7fffffff
mov dword [esp + 0xc], ebx
mov ebx, dword [edx + 4]
mov dword [esp + 0x70], ebx
mov ebx, ecx
mov edx, dword [edx]
shr ebx, 0x10
mov dword [esp + 0x74], edx
mov edx, dword [esi + 8]
mov dword [esp + 0x2c], eax
xor eax, edi
mov dword [esp + 0x90], edx
and eax, 0x80000000
mov edx, dword [esi + 4]
mov esi, dword [esi]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x8c], esi
movzx esi, ax
shr eax, 0x10
mov dword [esp + 8], eax
lea eax, [ebx - 1]
mov dword [esp + 0x88], edx
movzx edx, cx
mov dword [esp + 0x1c], ecx
cmp eax, 0x7ffd
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0xc]
ja 0x4c1bd3
mov edi, dword [esp + 8]
lea edi, [edi - 1]
cmp edi, 0x7ffd
ja 0x4c1bd3
mov dword [esp + 0x50], eax
sub ebx, dword [esp + 8]
or edx, 0x10000
or esi, 0x10000
cmp edx, esi
lea edi, [ebx + 0x3ffd]
mov dword [esp + 0x68], edi
je 0x4c195b
cmp esi, edx
jb 0x4c0b00
jne 0x4c0b4d
cmp eax, dword [esp + 0x90]
ja 0x4c0b00
jne 0x4c0b4d
mov edi, dword [esp + 0x70]
cmp edi, dword [esp + 0x88]
ja 0x4c0b00
cmp edi, dword [esp + 0x88]
jne 0x4c0b4d
mov edi, dword [esp + 0x74]
cmp edi, dword [esp + 0x8c]
jbe 0x4c0b4d
mov edi, eax
lea ebx, [ebx + 0x3ffe]
shl edx, 0xe
shr edi, 0x12
or edx, edi
mov edi, dword [esp + 0x70]
mov ecx, edi
shl eax, 0xe
shr ecx, 0x12
or eax, ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0xc], eax
mov dword [esp + 0x50], eax
mov eax, ecx
shl edi, 0xe
shr eax, 0x12
shl ecx, 0xe
or edi, eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], ecx
mov dword [esp + 0x68], ebx
mov eax, dword [esp + 0xc]
jmp 0x4c0b86
mov ecx, dword [esp + 0x70]
mov edi, ecx
mov ebx, eax
shl eax, 0xf
shr edi, 0x11
shl edx, 0xf
or eax, edi
shr ebx, 0x11
mov edi, dword [esp + 0x74]
or edx, ebx
mov ebx, edi
shl ecx, 0xf
shr ebx, 0x11
shl edi, 0xf
or ecx, ebx
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], edi
mov ebx, dword [esp + 0x90]
mov edi, ebx
shl esi, 0xf
shr edi, 0x11
mov ecx, dword [esp + 0x88]
or esi, edi
mov edi, ecx
shl ebx, 0xf
shr edi, 0x11
or ebx, edi
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x90], ebx
mov ebx, edi
shl ecx, 0xf
shr ebx, 0x11
shl edi, 0xf
or ecx, ebx
mov dword [esp + 0x58], esi
cmp esi, edx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], edi
jb 0x4c0be4
jne 0x4c0c14
cmp eax, dword [esp + 0x90]
jb 0x4c0c14
mov edx, dword [esp + 0x58]
mov eax, 0xffffffff
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x84], edx
mov dword [esp + 4], ecx
mov dword [esp + 0x80], ebx
jmp 0x4c0d39
cmp esi, edx
ja 0x4c0c22
mov dword [esp + 0x78], 0xffffffff
jmp 0x4c0c32
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
div dword [esp + 0x58]
mov dword [esp + 0x78], eax
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0x90]
mul esi
mov ecx, eax
mov ebx, edx
mov eax, dword [esp + 0x58]
neg ecx
mov dword [esp + 0x84], eax
mul esi
add ebx, eax
mov edi, dword [esp + 0x70]
adc edx, 0
add ecx, edi
cmp edi, ecx
mov edi, 0
mov dword [esp], esi
mov esi, dword [esp + 0x50]
adc edi, 0
neg ebx
add ebx, esi
sub ebx, edi
mov dword [esp + 4], esi
cmp ebx, esi
ja 0x4c0c86
test edi, edi
je 0x4c0c8d
cmp ebx, dword [esp + 4]
jne 0x4c0c8d
mov edi, 1
jmp 0x4c0c8f
xor edi, edi
neg edx
mov esi, dword [esp + 0x54]
add edx, esi
mov dword [esp + 0x80], esi
sub edx, edi
js 0x4c0cac
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ecx
jmp 0x4c0cf8
mov edi, dword [esp + 0x84]
mov esi, dword [esp]
mov eax, dword [esp + 0x90]
add ecx, eax
cmp ecx, eax
mov eax, 0
adc eax, 0
add ebx, edi
add ebx, eax
dec esi
cmp ebx, edi
jb 0x4c0cda
test eax, eax
je 0x4c0ce1
cmp ebx, edi
jne 0x4c0ce1
mov eax, 1
jmp 0x4c0ce3
xor eax, eax
add edx, eax
js 0x4c0cb6
mov dword [esp], esi
mov eax, esi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x78], eax
cmp ebx, dword [esp + 0x84]
jb 0x4c0d0b
mov dword [esp + 0x5c], 0xffffffff
jmp 0x4c0d39
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
div dword [esp + 0x58]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x84], eax
mov edx, dword [esp + 0x50]
mov dword [esp + 4], edx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x80], ecx
mov esi, dword [esp + 0x8c]
mov eax, esi
mov ecx, dword [esp + 0x5c]
mul ecx
mov ebx, dword [esp + 0x78]
mov edi, edx
mov dword [esp + 0x94], eax
mov eax, ebx
mul esi
mov dword [esp + 8], eax
mov eax, ecx
mov esi, dword [esp + 0x88]
mov dword [esp + 0xc], edx
mul esi
mov dword [esp + 0x10], eax
mov eax, ebx
mov dword [esp + 0x1c], edx
mul esi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x2c], edx
mul ecx
mov esi, eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x30], edx
mul ebx
mov dword [esp + 0x7c], ebx
mov ebx, eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x34], edx
mul ecx
add edi, dword [esp + 8]
mov dword [esp + 0x9c], ecx
mov ecx, 0
adc ecx, 0
add edi, dword [esp + 0x10]
mov dword [esp + 0x3c], edx
adc ecx, 0
xor edx, edx
add ecx, dword [esp + 0xc]
mov dword [esp + 0x98], edi
adc edx, 0
add ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x28]
adc edx, 0
add edi, esi
mov esi, 0
adc esi, 0
add ecx, edi
mov dword [esp + 0x38], eax
adc edx, esi
xor edi, edi
xor esi, esi
add edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x78]
adc esi, 0
add edx, dword [esp + 0x30]
adc esi, 0
add ebx, dword [esp + 0x38]
adc edi, 0
add edx, ebx
mov dword [esp + 0x40], edx
mov ebx, dword [esp + 0x34]
adc esi, edi
mul dword [esp + 0x84]
xor edi, edi
add ebx, dword [esp + 0x3c]
adc edi, 0
add esi, eax
mov eax, dword [esp + 0x94]
adc edx, 0
add ebx, esi
adc edi, edx
mov esi, 1
test eax, eax
mov edx, dword [esp + 0x98]
cmove esi, eax
neg eax
add edx, esi
mov dword [esp], edi
neg edx
mov dword [esp + 0x98], edx
mov dword [esp + 0x94], eax
mov edx, dword [esp + 0x40]
jne 0x4c0e7b
test esi, esi
je 0x4c0e82
cmp dword [esp + 0x98], 0
jne 0x4c0e82
mov esi, 1
jmp 0x4c0e84
xor esi, esi
neg ecx
mov eax, dword [esp + 0x74]
add ecx, eax
sub ecx, esi
cmp ecx, eax
ja 0x4c0e9c
test esi, esi
je 0x4c0ea3
cmp ecx, dword [esp + 0x74]
jne 0x4c0ea3
mov esi, 1
jmp 0x4c0ea5
xor esi, esi
neg edx
mov eax, dword [esp + 0x70]
add edx, eax
sub edx, esi
cmp edx, eax
ja 0x4c0ebd
test esi, esi
je 0x4c0ec4
cmp edx, dword [esp + 0x70]
jne 0x4c0ec4
mov esi, 1
jmp 0x4c0ec6
xor esi, esi
neg ebx
mov eax, dword [esp + 4]
add ebx, eax
sub ebx, esi
cmp ebx, eax
ja 0x4c0ede
test esi, esi
je 0x4c0ee5
cmp ebx, dword [esp + 4]
jne 0x4c0ee5
mov eax, 1
jmp 0x4c0ee7
xor eax, eax
mov esi, dword [esp + 0x80]
sub esi, dword [esp]
sub esi, eax
mov dword [esp + 0x80], esi
jns 0x4c0ffe
mov eax, esi
mov esi, dword [esp + 0x9c]
dec esi
mov dword [esp + 0x9c], esi
cmp esi, 0xffffffff
jne 0x4c0f23
mov esi, dword [esp + 0x7c]
dec esi
mov dword [esp + 0x7c], esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x80], eax
xor edi, edi
mov esi, dword [esp + 0x8c]
mov eax, dword [esp + 0x94]
add eax, esi
cmp eax, esi
mov dword [esp + 0x94], eax
mov esi, dword [esp + 0x88]
adc edi, 0
mov eax, dword [esp + 0x98]
add eax, esi
add eax, edi
mov dword [esp + 0x98], eax
cmp eax, esi
mov dword [esp], edi
mov eax, dword [esp + 0x80]
jb 0x4c0f85
cmp dword [esp], 0
je 0x4c0f8c
mov esi, dword [esp + 0x98]
cmp esi, dword [esp + 0x88]
jne 0x4c0f8c
mov edi, 1
jmp 0x4c0f8e
xor edi, edi
mov esi, dword [esp + 0x90]
add ecx, esi
add ecx, edi
cmp ecx, esi
jb 0x4c0faa
test edi, edi
je 0x4c0fb1
cmp ecx, dword [esp + 0x90]
jne 0x4c0fb1
mov edi, 1
jmp 0x4c0fb3
xor edi, edi
mov esi, dword [esp + 0x84]
add edx, esi
add edx, edi
cmp edx, esi
jb 0x4c0fcf
test edi, edi
je 0x4c0fd6
cmp edx, dword [esp + 0x84]
jne 0x4c0fd6
mov esi, 1
jmp 0x4c0fd8
xor esi, esi
add ebx, esi
test esi, esi
je 0x4c0fe9
test ebx, ebx
jne 0x4c0fe9
mov esi, 1
jmp 0x4c0feb
xor esi, esi
add eax, esi
js 0x4c0f02
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], ecx
cmp edx, dword [esp + 0x84]
jb 0x4c1019
mov dword [esp + 0x60], 0xffffffff
jmp 0x4c1034
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
div dword [esp + 0x58]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x84], eax
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x90]
mul ecx
mov ebx, eax
mov esi, edx
mov eax, dword [esp + 0x84]
neg ebx
mul ecx
add esi, eax
mov edi, dword [esp + 0x98]
adc edx, 0
add ebx, edi
cmp edi, ebx
mov edi, 0
mov eax, dword [esp + 0x50]
adc edi, 0
neg esi
add esi, eax
sub esi, edi
cmp esi, eax
ja 0x4c107e
test edi, edi
je 0x4c1085
cmp esi, eax
jne 0x4c1085
mov edi, 1
jmp 0x4c1087
xor edi, edi
mov eax, dword [esp + 0x54]
sub eax, edx
sub eax, edi
js 0x4c109b
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], ebx
jmp 0x4c10df
mov edi, dword [esp + 0x84]
mov edx, dword [esp + 0x90]
add ebx, edx
cmp ebx, edx
mov edx, 0
adc edx, 0
add esi, edi
add esi, edx
dec ecx
cmp esi, edi
jb 0x4c10c6
test edx, edx
je 0x4c10cd
cmp esi, edi
jne 0x4c10cd
mov edx, 1
jmp 0x4c10cf
xor edx, edx
add eax, edx
js 0x4c10a2
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], ebx
mov dword [esp + 0x60], ecx
cmp esi, dword [esp + 0x84]
jb 0x4c10f2
mov dword [esp + 0x64], 0xffffffff
jmp 0x4c1102
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
div dword [esp + 0x58]
mov dword [esp + 0x64], eax
mov ebx, dword [esp + 0x64]
mov ecx, ebx
and ecx, 0x3fff
mov edx, dword [esp + 0x60]
cmp ecx, 4
mov dword [esp + 0x74], edx
ja 0x4c13c8
mov esi, dword [esp + 0x8c]
mov eax, esi
mul ebx
mov dword [esp + 0x70], eax
mov eax, esi
mov ecx, dword [esp + 0x74]
mov edi, edx
mul ecx
mov esi, dword [esp + 0x88]
mov dword [esp + 4], eax
mov eax, esi
mov dword [esp + 8], edx
mul ebx
mov dword [esp + 0xc], eax
mov eax, esi
mov dword [esp + 0x10], edx
mul ecx
mov esi, dword [esp + 0x90]
mov dword [esp + 0x1c], eax
mov eax, esi
mov dword [esp + 0x28], edx
mul ebx
mov dword [esp + 0x2c], eax
mov eax, esi
mov dword [esp + 0x30], edx
mul ecx
mov esi, eax
mov eax, ebx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x34], edx
mul ecx
add edi, dword [esp + 4]
mov dword [esp + 0x80], ecx
mov ecx, 0
adc ecx, 0
add edi, dword [esp + 0xc]
mov dword [esp + 0x3c], edx
adc ecx, 0
xor edx, edx
add ecx, dword [esp + 8]
mov dword [esp + 0x84], ebx
adc edx, 0
add ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
adc edx, 0
add ebx, dword [esp + 0x2c]
mov dword [esp + 0x7c], edi
mov edi, 0
adc edi, 0
add ecx, ebx
adc edx, edi
xor ebx, ebx
xor edi, edi
add edx, dword [esp + 0x28]
mov dword [esp + 0x38], eax
adc ebx, 0
add edx, dword [esp + 0x30]
mov eax, dword [esp + 0x74]
adc ebx, 0
add esi, dword [esp + 0x38]
adc edi, 0
add edx, esi
mov dword [esp + 0x40], edx
mov esi, dword [esp + 0x34]
adc ebx, edi
mul dword [esp + 0x58]
xor edi, edi
add esi, dword [esp + 0x3c]
adc edi, 0
add ebx, eax
mov eax, dword [esp + 0x70]
adc edx, 0
add esi, ebx
mov ebx, dword [esp + 0x7c]
adc edi, edx
mov edx, 1
test eax, eax
cmove edx, eax
neg eax
add ebx, edx
mov dword [esp], edi
neg ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x70], eax
mov ebx, dword [esp + 0x84]
mov edi, dword [esp + 0x40]
jne 0x4c124f
test edx, edx
je 0x4c1256
cmp dword [esp + 0x7c], 0
jne 0x4c1256
mov eax, 1
jmp 0x4c1258
xor eax, eax
neg ecx
mov edx, dword [esp + 0x94]
add ecx, edx
sub ecx, eax
cmp ecx, edx
ja 0x4c1276
test eax, eax
je 0x4c127d
cmp ecx, dword [esp + 0x94]
jne 0x4c127d
mov eax, 1
jmp 0x4c127f
xor eax, eax
neg edi
mov edx, dword [esp + 0x98]
add edi, edx
sub edi, eax
cmp edi, edx
ja 0x4c129d
test eax, eax
je 0x4c12a4
cmp edi, dword [esp + 0x98]
jne 0x4c12a4
mov edx, 1
jmp 0x4c12a6
xor edx, edx
neg esi
mov eax, dword [esp + 0x50]
add esi, eax
sub esi, edx
cmp esi, eax
ja 0x4c12bc
test edx, edx
je 0x4c12c3
cmp esi, eax
jne 0x4c12c3
mov edx, 1
jmp 0x4c12c5
xor edx, edx
mov eax, dword [esp + 0x54]
sub eax, dword [esp]
sub eax, edx
jns 0x4c13ae
mov dword [esp], eax
mov eax, dword [esp + 0x74]
dec ebx
cmp ebx, 0xffffffff
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x70]
lea edx, [eax - 1]
cmove eax, edx
xor edx, edx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x8c]
add ebx, eax
cmp ebx, eax
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x88]
adc edx, 0
mov eax, dword [esp + 0x7c]
add eax, ebx
add eax, edx
mov dword [esp + 4], edx
cmp eax, ebx
mov dword [esp + 0x7c], eax
mov ebx, dword [esp + 0x84]
jb 0x4c133c
cmp dword [esp + 4], 0
je 0x4c1343
mov edx, eax
cmp edx, dword [esp + 0x88]
jne 0x4c1343
mov eax, 1
jmp 0x4c1345
xor eax, eax
mov edx, dword [esp + 0x90]
add ecx, edx
add ecx, eax
cmp ecx, edx
jb 0x4c1361
test eax, eax
je 0x4c1368
cmp ecx, dword [esp + 0x90]
jne 0x4c1368
mov eax, 1
jmp 0x4c136a
xor eax, eax
mov edx, dword [esp + 0x80]
add edi, edx
add edi, eax
cmp edi, edx
jb 0x4c1386
test eax, eax
je 0x4c138d
cmp edi, dword [esp + 0x80]
jne 0x4c138d
mov edx, 1
jmp 0x4c138f
xor edx, edx
add esi, edx
test edx, edx
je 0x4c13a0
test esi, esi
jne 0x4c13a0
mov edx, 1
jmp 0x4c13a2
xor edx, edx
add dword [esp], edx
js 0x4c12d7
mov eax, dword [esp]
or eax, esi
mov edx, 1
or eax, edi
or eax, ecx
xor ecx, ecx
or eax, dword [esp + 0x7c]
or eax, dword [esp + 0x70]
cmovne ecx, edx
or ebx, ecx
mov ecx, dword [esp + 0x74]
mov edx, ecx
shl edx, 0x11
mov esi, ebx
shr ebx, 0xf
or edx, ebx
mov ebx, dword [esp + 0x5c]
mov eax, ebx
shl eax, 0x11
shr ecx, 0xf
or eax, ecx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x78]
mov edi, eax
shl edi, 0x11
shr ebx, 0xf
shl esi, 0x11
or edi, ebx
shr eax, 0xf
mov dword [esp + 0x64], edx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x78], eax
cmp dword [esp + 0x68], 0x7ffd
jae 0x4c1535
test esi, esi
je 0x4c14fb
fnstcw word [esp + 0x4c]
mov eax, dword [0x4f9f30]
mov edx, dword [0x4f9f38]
mov edi, dword [esp + 0x4c]
movsd xmm0, qword [eax]
and edi, 0xc00
addsd xmm0, qword [edx]
movsd qword [esp + 0x20], xmm0
jne 0x4c144f
test esi, esi
jl 0x4c14aa
jmp 0x4c1470
cmp edi, 0xc00
je 0x4c1470
cmp dword [esp + 0x6c], 0
je 0x4c1468
cmp edi, 0x400
je 0x4c14aa
jmp 0x4c1470
cmp edi, 0x800
je 0x4c14aa
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
mov esi, dword [ebp + 8]
mov dword [esi], eax
mov eax, dword [esp + 0x68]
shl eax, 0x10
add eax, edx
mov edx, dword [esp + 0x6c]
or edx, eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x64]
inc eax
jne 0x4c14d5
mov ebx, dword [esp + 0x60]
inc ebx
jne 0x4c14cb
mov ecx, dword [esp + 0x5c]
inc ecx
mov edx, dword [esp + 0x78]
inc edx
test ecx, ecx
cmovne edx, dword [esp + 0x78]
jmp 0x4c14e1
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x5c]
jmp 0x4c14e1
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
test edi, edi
jne 0x4c14f3
xor edi, edi
add esi, esi
mov esi, 1
cmove edi, esi
jmp 0x4c14f5
xor edi, edi
not edi
and eax, edi
jmp 0x4c1480
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
mov ecx, dword [ebp + 8]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x68]
shl edx, 0x10
add eax, edx
mov dword [ecx], ebx
mov ebx, dword [esp + 0x6c]
or ebx, eax
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], ebx
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
fnstcw word [esp + 0x4c]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x10], eax
and eax, 0xc00
jne 0x4c154f
mov edx, esi
shr edx, 0x1f
jmp 0x4c1577
cmp eax, 0xc00
je 0x4c1575
cmp dword [esp + 0x6c], 0
je 0x4c156a
cmp eax, 0x400
je 0x4c18fb
jmp 0x4c1575
cmp eax, 0x800
je 0x4c1949
xor edx, edx
cmp dword [esp + 0x68], 0x7ffd
jle 0x4c15fc
mov edx, dword [0x4f9f34]
cmp eax, 0xc00
movsd xmm0, qword [edx]
mulsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
je 0x4c18cc
cmp dword [esp + 0x6c], 0
je 0x4c15b4
cmp eax, 0x800
je 0x4c18cc
jmp 0x4c15bf
cmp eax, 0x400
je 0x4c18cc
mov esi, dword [esp + 0x6c]
shr esi, 0x1b
mov ebx, dword [ebp + 8]
mov eax, dword [esi + 0x4f3780]
mov dword [ebx], eax
mov edx, dword [esi + 0x4f3784]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x4f3788]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x4f378c]
mov eax, dword [ebp + 8]
mov dword [eax + 0xc], edx
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
je 0x4c190d
cmp dword [esp + 0x68], 0
jge 0x4c1418
cmp dword [esp + 0x68], 0xffffffff
jge 0x4c161a
mov edx, dword [esp + 0x64]
jmp 0x4c1657
test edx, edx
jne 0x4c1624
mov edx, dword [esp + 0x64]
jmp 0x4c1657
cmp dword [esp + 0x78], 0x1ffff
jae 0x4c1634
mov edx, dword [esp + 0x64]
jmp 0x4c1657
jne 0x4c1661
cmp dword [esp + 0x5c], 0xffffffff
jae 0x4c1643
mov edx, dword [esp + 0x64]
jmp 0x4c1657
jne 0x4c1661
mov edx, dword [esp + 0x64]
cmp dword [esp + 0x60], 0xffffffff
jb 0x4c1657
jne 0x4c1665
cmp edx, 0xffffffff
jae 0x4c1665
mov dword [esp + 8], 1
jmp 0x4c166d
mov edx, dword [esp + 0x64]
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x68]
neg ecx
mov eax, ecx
neg eax
mov dword [esp + 0x68], ecx
cmp ecx, 0x20
mov dword [esp + 0xc], eax
jge 0x4c16e3
mov edi, 1
test esi, esi
mov eax, edx
mov ebx, dword [esp + 0xc]
mov ecx, ebx
cmovne esi, edi
shl eax, cl
or esi, eax
mov eax, dword [esp + 0x60]
mov dword [esp], esi
mov esi, eax
shl esi, cl
mov ecx, dword [esp + 0x68]
shr edx, cl
mov ecx, ebx
or esi, edx
mov dword [esp + 4], esi
mov esi, dword [esp + 0x5c]
mov edx, esi
shl edx, cl
mov ecx, dword [esp + 0x68]
shr eax, cl
mov ecx, ebx
or edx, eax
mov eax, dword [esp + 0x78]
mov edi, eax
shl edi, cl
mov ecx, dword [esp + 0x68]
shr esi, cl
mov ebx, dword [esp + 4]
or edi, esi
mov esi, dword [esp]
shr eax, cl
jmp 0x4c17c8
je 0x4c18af
cmp dword [esp + 0x68], 0x40
jge 0x4c173a
xor eax, eax
or esi, edx
mov edi, dword [esp + 0x60]
mov ebx, edi
mov edx, 1
mov ecx, dword [esp + 0xc]
cmovne eax, edx
shl ebx, cl
mov esi, dword [esp + 0x5c]
or eax, ebx
mov ebx, esi
shl ebx, cl
mov ecx, dword [esp + 0x68]
shr edi, cl
or ebx, edi
mov edi, dword [esp + 0x78]
mov edx, edi
mov ecx, dword [esp + 0xc]
shl edx, cl
mov ecx, dword [esp + 0x68]
mov dword [esp], eax
shr esi, cl
shr edi, cl
or edx, esi
mov esi, eax
jmp 0x4c17c6
je 0x4c188f
cmp dword [esp + 0x68], 0x60
jge 0x4c177c
or edx, dword [esp + 0x60]
or edx, esi
mov esi, 0
mov eax, dword [esp + 0x5c]
mov ebx, eax
mov edx, 1
mov ecx, dword [esp + 0xc]
cmovne esi, edx
shl ebx, cl
mov edx, dword [esp + 0x78]
or esi, ebx
mov ebx, edx
shl ebx, cl
mov ecx, dword [esp + 0x68]
shr eax, cl
shr edx, cl
or ebx, eax
jmp 0x4c17c4
je 0x4c186f
cmp dword [esp + 0x68], 0x80
jge 0x4c17bb
mov edi, dword [esp + 0x5c]
or edi, dword [esp + 0x60]
or edi, edx
mov edx, 1
or edi, esi
mov esi, 0
mov ebx, dword [esp + 0x78]
mov eax, ebx
mov ecx, dword [esp + 0xc]
cmovne esi, edx
shl eax, cl
mov ecx, dword [esp + 0x68]
or esi, eax
shr ebx, cl
jmp 0x4c17c2
xor ebx, ebx
mov esi, 1
xor edx, edx
xor edi, edi
xor eax, eax
cmp dword [esp + 8], 0
je 0x4c1852
test esi, esi
je 0x4c1807
mov dword [esp + 0x78], eax
mov eax, dword [0x4f9f38]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], edx
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
mov dword [esp + 0x5c], edi
movsd qword [esp + 0x20], xmm0
mov dword [esp + 0x68], 0
jmp 0x4c1420
test byte [esp + 0x10], 0x10
jne 0x4c1845
mov ecx, dword [0x4f9f38]
mov esi, dword [0x4f9f3c]
mov dword [esp + 0x64], ebx
movsd xmm0, qword [ecx]
mulsd xmm0, qword [esi]
mov dword [esp + 0x60], edx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x78], eax
movsd qword [esp + 0x20], xmm0
mov dword [esp + 0x68], 0
jmp 0x4c150b
mov dword [esp + 0x68], 0
jmp 0x4c150b
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], edx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x68], 0
jmp 0x4c1418
or edx, dword [esp + 0x60]
mov eax, 1
or edx, esi
mov esi, 0
mov ebx, dword [esp + 0x78]
cmovne esi, eax
or esi, dword [esp + 0x5c]
jmp 0x4c17c2
mov eax, 1
or esi, edx
mov esi, 0
cmovne esi, eax
or esi, dword [esp + 0x60]
mov ebx, dword [esp + 0x5c]
mov edx, dword [esp + 0x78]
jmp 0x4c17c4
mov eax, 1
test esi, esi
mov ebx, dword [esp + 0x60]
cmovne esi, eax
mov edi, dword [esp + 0x78]
or esi, edx
mov edx, dword [esp + 0x5c]
jmp 0x4c17c6
mov esi, dword [esp + 0x6c]
shr esi, 0x1b
mov ebx, dword [ebp + 8]
mov eax, dword [esi + 0x4f37c0]
mov dword [ebx], eax
mov edx, dword [esi + 0x4f37c4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x4f37c8]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x4f37cc]
jmp 0x4c15e9
test esi, esi
je 0x4c1575
mov edx, 1
jmp 0x4c1577
cmp dword [esp + 0x78], 0x1ffff
jne 0x4c1418
cmp dword [esp + 0x5c], 0xffffffff
jne 0x4c1418
cmp dword [esp + 0x60], 0xffffffff
jne 0x4c1418
cmp dword [esp + 0x64], 0xffffffff
jne 0x4c1418
test edx, edx
jne 0x4c1581
jmp 0x4c1418
test esi, esi
je 0x4c1575
mov edx, 1
jmp 0x4c1577
cmp eax, dword [esp + 0x90]
jne 0x4c0ac8
mov edi, dword [esp + 0x70]
cmp edi, dword [esp + 0x88]
jne 0x4c0ac8
mov edi, dword [esp + 0x74]
cmp edi, dword [esp + 0x8c]
jne 0x4c0ac8
lea eax, [ebx + 0x3ffe]
cmp eax, 0x7ffd
jle 0x4c1a2e
mov dword [esp + 0x58], esi
mov dword [esp + 0x54], edx
fnstcw word [esp + 0x4c]
mov eax, dword [0x4f9f34]
mov edx, dword [esp + 0x4c]
and edx, 0xc00
movsd xmm0, qword [eax]
cmp edx, 0xc00
mulsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
je 0x4c1ba4
cmp dword [esp + 0x6c], 0
je 0x4c19e5
cmp edx, 0x800
je 0x4c1ba4
jmp 0x4c19f1
cmp edx, 0x400
je 0x4c1ba4
mov esi, dword [esp + 0x6c]
shr esi, 0x1b
mov ebx, dword [ebp + 8]
mov eax, dword [esi + 0x4f3780]
mov dword [ebx], eax
mov edx, dword [esi + 0x4f3784]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x4f3788]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x4f378c]
mov eax, dword [ebp + 8]
mov dword [eax + 0xc], edx
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test eax, eax
js 0x4c1a5d
mov ebx, dword [ebp + 8]
xor edx, edx
shl eax, 0x10
add eax, 0x10000
mov ecx, dword [esp + 0x6c]
or ecx, eax
mov dword [ebx], edx
mov dword [ebx + 4], edx
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], ecx
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffffef
jle 0x4c1a94
add ebx, 0x400e
xor eax, eax
mov esi, dword [ebp + 8]
mov ecx, ebx
mov ebx, 1
shl ebx, cl
mov edx, dword [esp + 0x6c]
or edx, ebx
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], edx
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffffcf
jle 0x4c1ac9
mov esi, dword [ebp + 8]
add ebx, 0x400e
mov ecx, ebx
mov ebx, 1
mov edx, dword [esp + 0x6c]
xor eax, eax
shl ebx, cl
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], ebx
mov dword [esi + 0xc], edx
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffffaf
jle 0x4c1afe
mov esi, dword [ebp + 8]
add ebx, 0x400e
mov ecx, ebx
mov ebx, 1
mov edx, dword [esp + 0x6c]
xor eax, eax
shl ebx, cl
mov dword [esi], eax
mov dword [esi + 8], eax
mov dword [esi + 4], ebx
mov dword [esi + 0xc], edx
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffff8f
jle 0x4c1b33
mov esi, dword [ebp + 8]
add ebx, 0x400e
mov ecx, ebx
mov ebx, 1
mov edx, dword [esp + 0x6c]
xor eax, eax
shl ebx, cl
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi], ebx
mov dword [esi + 0xc], edx
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x58], esi
mov dword [esp + 0x54], edx
fnstcw word [esp + 0x4c]
mov eax, dword [0x4f9f38]
mov edx, dword [esp + 0x4c]
and edx, 0xc00
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
cmp dword [esp + 0x6c], 0
je 0x4c1b75
xor ecx, ecx
mov eax, 1
cmp edx, 0x400
cmovne eax, ecx
jmp 0x4c1b85
xor ecx, ecx
mov eax, 1
cmp edx, 0x800
cmovne eax, ecx
mov edx, dword [ebp + 8]
mov dword [edx], eax
mov eax, dword [esp + 0x6c]
mov dword [edx + 4], ecx
mov dword [edx + 8], ecx
mov dword [edx + 0xc], eax
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x6c]
shr esi, 0x1b
mov ebx, dword [ebp + 8]
mov eax, dword [esi + 0x4f37c0]
mov dword [ebx], eax
mov edx, dword [esi + 0x4f37c4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x4f37c8]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x4f37cc]
jmp 0x4c1a1b
mov edi, eax
xor ecx, ecx
or edi, dword [esp + 0x70]
or edi, dword [esp + 0x74]
mov edi, 1
cmovne ecx, edi
or ecx, dword [esp + 0x1c]
jne 0x4c1bf8
mov edi, 1
mov dword [esp + 4], edi
jmp 0x4c1c2d
cmp ecx, 0x10000
jae 0x4c1c0a
mov dword [esp + 4], 2
jmp 0x4c1c2d
cmp ecx, 0x7fff0000
jae 0x4c1c1c
mov dword [esp + 4], 4
jmp 0x4c1c2d
mov edi, 0x10
mov ecx, 8
cmova ecx, edi
mov dword [esp + 4], ecx
mov edi, dword [esp + 0x90]
xor ecx, ecx
or edi, dword [esp + 0x88]
or edi, dword [esp + 0x8c]
mov edi, 1
cmovne ecx, edi
or ecx, dword [esp + 0x10]
jne 0x4c1c5c
mov edi, 1
mov dword [esp], edi
jmp 0x4c1c8e
cmp ecx, 0x10000
jae 0x4c1c6d
mov dword [esp], 2
jmp 0x4c1c8e
cmp ecx, 0x7fff0000
jae 0x4c1c7e
mov dword [esp], 4
jmp 0x4c1c8e
mov edi, 0x10
mov ecx, 8
cmova ecx, edi
mov dword [esp], ecx
mov ecx, dword [esp + 4]
or ecx, dword [esp]
test cl, 0x10
je 0x4c1e3e
mov edx, dword [esp + 4]
cmp edx, dword [esp]
je 0x4c1cfd
cmp dword [esp + 4], 0x10
je 0x4c229a
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
mov eax, dword [esp + 0x8c]
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 0xc]
test ecx, 0x8000
jne 0x4c1e25
mov eax, dword [0x4f9f28]
mov edx, dword [ebp + 8]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
mov dword [edx + 0xc], ecx
movsd qword [esp + 0x20], xmm0
mov ecx, dword [edx + 0xc]
jmp 0x4c1e25
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
not edx
not ecx
and edx, 0x8000
and ecx, 0x8000
shr edx, 0xf
shr ecx, 0xf
mov dword [esp + 0x2c], edx
or edx, ecx
mov dword [esp + 0x28], ecx
je 0x4c1d3b
mov edx, dword [0x4f9f28]
movsd xmm0, qword [edx]
divsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
mov edx, dword [esp + 0x2c]
cmp edx, dword [esp + 0x28]
je 0x4c1d52
cmp dword [esp + 0x2c], 0
jne 0x4c1e0c
jmp 0x4c1dca
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x10]
jb 0x4c1e0c
mov dword [esp + 0x50], eax
jne 0x4c1d95
cmp eax, dword [esp + 0x90]
jb 0x4c1e0c
jne 0x4c1d95
mov eax, dword [esp + 0x70]
cmp eax, dword [esp + 0x88]
jb 0x4c1e0c
jne 0x4c1d95
mov eax, dword [esp + 0x74]
cmp eax, dword [esp + 0x8c]
jb 0x4c1e0c
mov eax, edx
cmp eax, dword [esp + 0x10]
ja 0x4c1dca
jne 0x4c1de5
mov eax, dword [esp + 0x90]
cmp eax, dword [esp + 0x50]
jb 0x4c1dca
jne 0x4c1de5
mov eax, dword [esp + 0x70]
cmp eax, dword [esp + 0x88]
ja 0x4c1dca
jne 0x4c1de5
mov eax, dword [esp + 0x74]
cmp eax, dword [esp + 0x8c]
jbe 0x4c1de5
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 0xc]
jmp 0x4c1e25
mov eax, dword [ebp + 0xc]
test dword [eax + 0xc], 0x80000000
je 0x4c1e0c
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 0xc]
jmp 0x4c1e25
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 0xc]
mov eax, dword [ebp + 8]
or ecx, 0x8000
mov dword [eax + 0xc], ecx
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 4]
test dword [esp], edi
je 0x4c1e8c
test byte [esp + 4], 2
jne 0x4c1e8c
mov eax, dword [0x4f9f28]
mov edx, dword [ebp + 8]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov dword [edx + 0xc], 0xffff8000
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test byte [esp + 4], 8
je 0x4c1eec
test byte [esp], 2
je 0x4c1eb2
mov eax, dword [0x4f9f2c]
mov edx, dword [0x4f9f30]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x20], xmm0
mov ebx, dword [esp + 0x6c]
shr ebx, 0x1b
mov edi, dword [ebp + 8]
mov eax, dword [ebx + 0x4f3780]
mov dword [edi], eax
mov edx, dword [ebx + 0x4f3784]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x4f3788]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x4f378c]
mov dword [edi + 0xc], esi
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test byte [esp], 1
jne 0x4c2326
test byte [esp + 4], 1
jne 0x4c1f03
test byte [esp], 8
je 0x4c1f5b
test cl, 2
je 0x4c1f21
mov eax, dword [0x4f9f2c]
mov edx, dword [0x4f9f30]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x20], xmm0
mov ebx, dword [esp + 0x6c]
shr ebx, 0x1b
mov edi, dword [ebp + 8]
mov eax, dword [ebx + 0x4f37a0]
mov dword [edi], eax
mov edx, dword [ebx + 0x4f37a4]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x4f37a8]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x4f37ac]
mov dword [edi + 0xc], esi
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x50], eax
mov eax, dword [0x4f9f2c]
mov dword [esp + 0x54], edx
mov edx, dword [0x4f9f30]
movsd xmm0, qword [eax]
mov dword [esp + 0x58], esi
mulsd xmm0, qword [edx]
movsd qword [esp + 0x20], xmm0
cmp dword [esp + 8], 0
jne 0x4c2135
test esi, esi
je 0x4c1f9e
mov ecx, esi
shl ecx, 0xf
mov dword [esp + 8], 0
jmp 0x4c1fdd
cmp dword [esp + 0x90], 0
je 0x4c1fb9
mov ecx, dword [esp + 0x90]
mov dword [esp + 8], 0x11
jmp 0x4c1fdd
mov eax, dword [esp + 0x88]
mov edx, 0x31
mov edi, 0x51
test eax, eax
mov ecx, dword [esp + 0x8c]
cmovne edi, edx
mov dword [esp + 8], edi
cmovne ecx, eax
bsr eax, ecx
mov edi, dword [esp + 8]
sub edi, eax
add edi, 0x1f
mov edx, edi
neg edx
mov dword [esp + 8], edi
cmp edi, 0x20
mov dword [esp + 4], edx
jge 0x4c205f
mov eax, edi
mov ecx, eax
mov edx, dword [esp + 0x90]
mov edi, edx
shl esi, cl
mov ecx, dword [esp + 4]
shr edi, cl
mov ecx, eax
or esi, edi
mov dword [esp], esi
mov esi, dword [esp + 0x88]
mov edi, esi
shl edx, cl
mov ecx, dword [esp + 4]
shr edi, cl
mov ecx, eax
or edx, edi
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x90], edx
mov edx, edi
shl esi, cl
mov ecx, dword [esp + 4]
shr edx, cl
mov ecx, eax
or esi, edx
mov dword [esp + 0x88], esi
shl edi, cl
mov dword [esp + 0x8c], edi
mov esi, dword [esp]
jmp 0x4c2128
je 0x4c22d4
cmp dword [esp + 8], 0x40
jge 0x4c20bc
mov edx, edi
mov ecx, edx
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x88]
mov esi, eax
shl dword [esp + 0x90], cl
mov ecx, edi
shr esi, cl
mov ecx, edx
or esi, dword [esp + 0x90]
shl eax, cl
mov ecx, edi
mov edi, dword [esp + 0x8c]
mov dword [esp], esi
mov esi, edi
shr esi, cl
mov ecx, edx
or esi, eax
mov dword [esp + 0x90], esi
shl edi, cl
mov dword [esp + 0x88], edi
mov esi, dword [esp]
jmp 0x4c211d
je 0x4c22ba
cmp dword [esp + 8], 0x60
jge 0x4c20f4
mov edx, edi
mov ecx, edx
mov edi, dword [esp + 0x8c]
mov esi, edi
mov eax, dword [esp + 0x88]
shl eax, cl
mov ecx, dword [esp + 4]
shr esi, cl
mov ecx, edx
shl edi, cl
or esi, eax
mov dword [esp + 0x90], edi
jmp 0x4c2112
mov eax, dword [esp + 0x8c]
mov esi, eax
mov ecx, edi
shl esi, cl
cmp ecx, 0x60
mov dword [esp + 0x90], 0
cmove esi, eax
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov eax, dword [esp + 8]
neg eax
inc eax
mov dword [esp + 8], eax
jmp 0x4c2139
mov esi, dword [esp + 0x58]
test ebx, ebx
jne 0x4c228d
mov edx, dword [esp + 0x54]
test edx, edx
je 0x4c2152
mov edi, edx
xor ebx, ebx
shl edi, 0xf
jmp 0x4c217b
mov edi, dword [esp + 0x50]
test edi, edi
je 0x4c2161
mov ebx, 0x11
jmp 0x4c217b
mov ebx, dword [esp + 0x70]
mov eax, 0x31
test ebx, ebx
mov edi, dword [esp + 0x74]
cmovne edi, ebx
mov ebx, 0x51
cmovne ebx, eax
bsr eax, edi
sub ebx, eax
add ebx, 0x1f
mov edi, ebx
neg edi
mov dword [esp + 4], edi
cmp ebx, 0x20
jge 0x4c21e9
mov eax, dword [esp + 0x50]
mov ecx, ebx
mov edi, eax
shl edx, cl
mov ecx, dword [esp + 4]
shr edi, cl
mov ecx, ebx
or edx, edi
mov dword [esp], edx
mov edx, dword [esp + 0x70]
mov edi, edx
shl eax, cl
mov ecx, dword [esp + 4]
shr edi, cl
mov ecx, ebx
or eax, edi
mov edi, dword [esp + 0x74]
mov dword [esp + 0xc], eax
mov dword [esp + 0x50], eax
mov eax, edi
shl edx, cl
mov ecx, dword [esp + 4]
shr eax, cl
mov ecx, ebx
or edx, eax
mov dword [esp + 0x70], edx
shl edi, cl
mov dword [esp + 0x74], edi
mov edx, dword [esp]
mov eax, dword [esp + 0xc]
jmp 0x4c2285
je 0x4c230d
cmp ebx, 0x40
jge 0x4c2230
mov edx, dword [esp + 0x70]
mov ecx, ebx
mov eax, edx
mov edi, dword [esp + 0x50]
shl edi, cl
mov ecx, dword [esp + 4]
shr eax, cl
mov ecx, ebx
or edi, eax
mov dword [esp], edi
mov edi, dword [esp + 0x74]
mov eax, edi
shl edx, cl
mov ecx, dword [esp + 4]
shr eax, cl
mov ecx, ebx
shl edi, cl
or eax, edx
mov edx, dword [esp]
mov dword [esp + 0x50], eax
mov dword [esp + 0x70], edi
jmp 0x4c227d
je 0x4c22fc
cmp ebx, 0x60
jge 0x4c225b
mov eax, dword [esp + 0x74]
mov ecx, ebx
mov edx, eax
mov edi, dword [esp + 0x70]
shl edi, cl
mov ecx, dword [esp + 4]
shr edx, cl
mov ecx, ebx
shl eax, cl
or edx, edi
mov dword [esp + 0x50], eax
jmp 0x4c2275
mov eax, dword [esp + 0x74]
mov ecx, ebx
mov edx, eax
shl edx, cl
cmp ebx, 0x60
mov dword [esp + 0x50], 0
cmove edx, eax
xor eax, eax
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
neg ebx
inc ebx
jmp 0x4c0aa6
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
jmp 0x4c0aa6
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov eax, dword [esp + 0x74]
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 0xc]
jmp 0x4c1cd0
mov eax, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
mov dword [esp + 0x90], eax
jmp 0x4c2112
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x90]
mov dword [esp + 0x90], eax
mov dword [esp + 0x88], edx
jmp 0x4c211d
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov dword [esp + 0x50], eax
jmp 0x4c2275
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x50], eax
mov dword [esp + 0x70], edi
jmp 0x4c227d
mov eax, dword [0x4f9f30]
mov edx, dword [0x4f9f28]
mov edi, dword [esp + 0x6c]
movsd xmm0, qword [eax]
divsd xmm0, qword [edx]
shr edi, 0x1b
mov eax, dword [ebp + 8]
movsd qword [esp + 0x20], xmm0
mov ecx, dword [edi + 0x4f3780]
mov dword [eax], ecx
mov ebx, dword [edi + 0x4f3784]
mov dword [eax + 4], ebx
mov esi, dword [edi + 0x4f3788]
mov dword [eax + 8], esi
mov ecx, dword [edi + 0x4f378c]
mov dword [eax + 0xc], ecx
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push ebp
mov ebp, esp
and esp, 0xfffffff8
push esi
push edi
push ebx
sub esp, 0xcc
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
mov eax, esi
mov dword [esp + 0x84], edx
and eax, 0x7fffffff
mov edi, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
mov dword [esp + 0xb4], edi
mov edi, edx
mov dword [esp + 0x64], esi
xor esi, edx
mov dword [esp + 0x6c], eax
and edi, 0x7fffffff
mov dword [esp + 8], edx
and esi, 0x80000000
movzx edx, ax
shr eax, 0x10
mov dword [esp + 0x68], edi
mov edi, dword [ebx]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x10], ebx
mov ebx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x54], eax
lea eax, [eax - 1]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x98], esi
movzx esi, cx
shr ecx, 0x10
mov dword [esp + 0xb0], ebx
cmp eax, 0x7ffd
mov dword [esp + 0x80], edi
mov dword [esp + 0x60], ecx
mov ebx, dword [esp + 0x84]
ja 0x4c3674
mov eax, ecx
lea ecx, [eax - 1]
cmp ecx, 0x7ffd
ja 0x4c3674
mov eax, dword [esp + 0x54]
or edx, 0x10000
sub eax, dword [esp + 0x60]
or esi, 0x10000
mov dword [esp + 0x54], eax
mov edi, edx
sub edi, esi
lea ecx, [eax + 0x3ffd]
mov eax, ebx
sub eax, dword [esp + 0xb4]
mov dword [esp + 0x90], ecx
or eax, edi
je 0x4c340a
mov eax, dword [esp + 0xb4]
mov ecx, esi
sub eax, ebx
sbb ecx, edx
jb 0x4c24ad
mov eax, esi
mov ecx, dword [esp + 0xb4]
sub eax, edx
sub ecx, ebx
or ecx, eax
jne 0x4c2505
mov eax, dword [esp + 0xb0]
sub eax, dword [esp + 0x80]
mov ecx, dword [esp + 0xc]
sbb ecx, dword [esp + 0x10]
jae 0x4c2505
mov edi, ebx
shr edi, 0x12
shl edx, 0xe
mov eax, dword [esp + 0x10]
or edi, edx
mov edx, eax
shl ebx, 0xe
shr edx, 0x12
mov ecx, dword [esp + 0x80]
or ebx, edx
mov dword [esp + 0x84], ebx
mov ebx, ecx
shr ebx, 0x12
shl eax, 0xe
or ebx, eax
mov eax, dword [esp + 0x54]
shl ecx, 0xe
mov dword [esp + 8], ebx
mov dword [esp + 0x80], ecx
lea edx, [eax + 0x3ffe]
mov dword [esp + 0x90], edx
mov ebx, dword [esp + 0x84]
jmp 0x4c253c
mov edi, ebx
shr edi, 0x11
shl edx, 0xf
mov eax, dword [esp + 0x10]
or edi, edx
mov edx, eax
shl ebx, 0xf
shr edx, 0x11
mov ecx, dword [esp + 0x80]
or ebx, edx
mov edx, ecx
shr edx, 0x11
shl eax, 0xf
shl ecx, 0xf
or edx, eax
mov dword [esp + 0x80], ecx
mov dword [esp + 8], edx
mov eax, dword [esp + 0xb4]
mov edx, eax
shr edx, 0x11
shl esi, 0xf
or edx, esi
mov esi, dword [esp + 0xc]
mov ecx, esi
shl eax, 0xf
shr ecx, 0x11
mov dword [esp + 0x88], edi
or eax, ecx
mov edi, dword [esp + 0xb0]
mov ecx, edi
shr ecx, 0x11
shl esi, 0xf
shl edi, 0xf
or ecx, esi
mov dword [esp + 0xb4], eax
sub eax, ebx
mov dword [esp + 0xb0], edi
mov edi, dword [esp + 0x88]
mov dword [esp + 0xc0], edx
sbb edx, edi
mov dword [esp + 0xbc], ecx
jb 0x4c25a3
or eax, edx
jne 0x4c25bb
mov eax, 0xffffffff
mov dword [esp + 0xc4], eax
mov dword [esp + 0xb8], eax
jmp 0x4c2705
mov eax, edi
sub eax, dword [esp + 0xc0]
jb 0x4c25d3
mov dword [esp + 0xb8], 0xffffffff
jmp 0x4c2601
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
div dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
mul dword [esp + 0xb4]
mov esi, dword [esp + 8]
mov ecx, esi
sub ecx, eax
mov dword [esp], ecx
sub esi, eax
jae 0x4c2628
mov dword [esp + 4], 1
jmp 0x4c262e
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc0]
mov esi, ebx
sub esi, edx
mov ecx, edi
sbb ecx, 0
mul dword [esp + 0xb8]
sub esi, eax
sbb ecx, edx
xor eax, eax
sub esi, dword [esp + 4]
sbb ecx, 0
mov edx, ecx
sub edx, eax
jge 0x4c26ba
mov dword [esp + 0x88], edi
mov dword [esp + 0x84], ebx
mov eax, dword [esp + 0xb8]
mov edx, dword [esp]
mov ebx, dword [esp + 0xb4]
add edx, ebx
mov edi, edx
add eax, 0xffffffff
sub edi, ebx
jae 0x4c2689
mov ebx, 1
jmp 0x4c268b
xor ebx, ebx
add esi, dword [esp + 0xc0]
adc ecx, 0
add esi, ebx
adc ecx, 0
xor ebx, ebx
mov edi, ecx
sub edi, ebx
jl 0x4c2670
mov dword [esp + 0xb8], eax
mov dword [esp], edx
mov edi, dword [esp + 0x88]
mov ebx, dword [esp + 0x84]
mov eax, esi
sub eax, dword [esp + 0xc0]
jb 0x4c26d2
mov dword [esp + 0xc4], 0xffffffff
jmp 0x4c2705
mov eax, dword [esp]
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
div dword [esp + 0x2c]
mov dword [esp + 0x30], eax
xor eax, eax
or eax, dword [esp + 0x30]
mov dword [esp + 0xc4], eax
mov dword [esp + 0x88], edi
mov edi, dword [esp + 0xb0]
mov eax, edi
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0xc4]
mul ebx
mov dword [esp + 0x6c], eax
mov eax, edi
mov ecx, dword [esp + 0xb8]
mov esi, edx
mul ecx
mov dword [esp + 0x74], eax
mov eax, ebx
mov edi, dword [esp + 0xbc]
mov dword [esp + 0x78], edx
mul edi
mov dword [esp + 0x7c], eax
mov eax, ecx
mov dword [esp + 0x68], edx
mul edi
mov edi, dword [esp + 0xb4]
mov dword [esp + 0x64], eax
mov eax, edi
mov dword [esp + 0x70], edx
mul ebx
mov dword [esp + 0x60], eax
mov eax, edi
mov dword [esp + 0x10], edx
mul ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 4], edx
mul ebx
add esi, dword [esp + 0x74]
mov dword [esp + 0x54], eax
mov eax, 0
adc eax, 0
add esi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x6c]
adc eax, 0
mov edi, dword [esp + 0x88]
or ecx, esi
mov ebx, dword [esp + 0x84]
mov ecx, dword [esp + 0x78]
mov dword [esp], edx
je 0x4c27c3
mov dword [esp + 0x78], 1
jmp 0x4c27c9
xor edx, edx
mov dword [esp + 0x78], edx
mov dword [esp + 0x88], edi
xor edi, edi
xor edx, edx
sub edx, dword [esp + 0x6c]
mov dword [esp + 0xc8], edx
mov edx, edi
sbb edx, esi
xor esi, esi
add ecx, dword [esp + 0x68]
mov dword [esp + 0x94], edx
adc esi, 0
add ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
adc esi, 0
add edx, eax
mov eax, edi
adc eax, 0
add ecx, edx
mov edx, dword [esp + 0x80]
adc esi, eax
mov eax, dword [esp + 0x70]
add eax, dword [esp + 0x10]
adc edi, 0
add eax, dword [esp + 0xc]
adc edi, 0
add eax, dword [esp + 0x54]
adc edi, 0
add eax, esi
mov esi, edx
adc edi, 0
add ecx, dword [esp + 0x78]
sub esi, ecx
mov dword [esp + 0x74], edi
mov edi, dword [esp + 8]
mov ecx, edi
sbb ecx, eax
mov eax, esi
sub eax, edx
mov edx, ecx
sbb edx, edi
mov edi, dword [esp + 0x88]
jb 0x4c2857
or eax, edx
jne 0x4c2875
cmp dword [esp + 0x78], 0
je 0x4c287f
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 8]
neg edx
neg eax
add edx, esi
add eax, ecx
or edx, eax
jne 0x4c287f
mov dword [esp + 8], 1
jmp 0x4c2885
xor eax, eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc0]
mul dword [esp + 0xb8]
sub ebx, dword [esp + 4]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp]
sbb edi, 0
add ecx, eax
adc edx, 0
xor eax, eax
sub ebx, ecx
mov ecx, dword [esp + 0x9c]
sbb edi, edx
sub ebx, dword [esp + 0x74]
sbb edi, 0
sub ebx, dword [esp + 8]
sbb edi, 0
mov edx, edi
sub edx, eax
jge 0x4c29a5
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], edi
mov ebx, dword [esp + 0x94]
mov eax, dword [esp + 0xc8]
add dword [esp + 0xc4], 0xffffffff
mov edi, dword [esp + 0xb0]
adc dword [esp + 0xb8], 0xffffffff
add eax, edi
mov edx, dword [esp + 0xbc]
adc ebx, edx
mov dword [esp + 0xc8], eax
sub eax, edi
mov edi, ebx
mov eax, dword [esp + 0xc8]
sbb edi, edx
jae 0x4c2929
mov edx, 1
jmp 0x4c292b
xor edx, edx
add esi, dword [esp + 0xb4]
adc ecx, dword [esp + 0xc0]
add esi, edx
adc ecx, 0
test edx, edx
je 0x4c2958
mov edi, esi
mov edx, ecx
sub edi, dword [esp + 0xb4]
sub edx, dword [esp + 0xc0]
or edi, edx
je 0x4c296c
mov edx, esi
mov edi, ecx
sub edx, dword [esp + 0xb4]
sbb edi, dword [esp + 0xc0]
jae 0x4c2973
mov edx, 1
jmp 0x4c2975
xor edx, edx
add dword [esp + 0x84], edx
mov edx, dword [esp + 0x88]
adc edx, 0
xor edi, edi
mov dword [esp + 0x88], edx
sub edx, edi
jl 0x4c28ea
mov dword [esp + 0x94], ebx
mov dword [esp + 0xc8], eax
mov edx, dword [esp + 0xb4]
sub edx, esi
mov eax, dword [esp + 0xc0]
sbb eax, ecx
jb 0x4c29bd
or edx, eax
jne 0x4c29c9
mov edi, 0xffffffff
mov ebx, edi
jmp 0x4c2af5
mov eax, ecx
sub eax, dword [esp + 0xc0]
jb 0x4c29db
mov ebx, 0xffffffff
jmp 0x4c2a02
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
div dword [esp + 0x3c]
mov dword [esp + 0x40], eax
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0xb4]
mul ebx
mov dword [esp], edx
mov edx, dword [esp + 0x94]
mov edi, edx
sub edi, eax
mov dword [esp + 4], edi
sub edx, eax
mov edx, dword [esp]
jae 0x4c2a2d
mov dword [esp], 1
jmp 0x4c2a32
xor eax, eax
mov dword [esp], eax
mov edi, esi
mov eax, dword [esp + 0xc0]
sub edi, edx
mov dword [esp + 0x9c], ecx
sbb ecx, 0
mul ebx
sub edi, eax
sbb ecx, edx
xor eax, eax
sub edi, dword [esp]
sbb ecx, 0
mov dword [esp + 8], ecx
sub ecx, eax
mov ecx, dword [esp + 0x9c]
jge 0x4c2ab6
mov dword [esp + 0x9c], ecx
mov dword [esp], esi
mov eax, dword [esp + 8]
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0xb4]
add edx, ecx
mov esi, edx
add ebx, 0xffffffff
sub esi, ecx
jae 0x4c2a8f
mov ecx, 1
jmp 0x4c2a91
xor ecx, ecx
add edi, dword [esp + 0xc0]
adc eax, 0
add edi, ecx
adc eax, 0
xor ecx, ecx
mov esi, eax
sub esi, ecx
jl 0x4c2a76
mov dword [esp + 4], edx
mov ecx, dword [esp + 0x9c]
mov esi, dword [esp]
mov eax, edi
sub eax, dword [esp + 0xc0]
jb 0x4c2ac8
mov edi, 0xffffffff
jmp 0x4c2af5
mov eax, dword [esp + 4]
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
div dword [esp + 0x4c]
mov dword [esp + 0x50], eax
xor edi, edi
or edi, dword [esp + 0x50]
mov eax, edi
mov edx, 4
and eax, 0x3fff
sub eax, edx
mov edx, 0
sbb edx, edx
jb 0x4c2b14
or eax, edx
jne 0x4c2e26
mov dword [esp], esi
mov esi, dword [esp + 0xb0]
mov eax, esi
mul edi
mov dword [esp + 0x70], eax
mov eax, esi
mov dword [esp + 0x9c], ecx
mov ecx, edx
mul ebx
mov esi, dword [esp + 0xbc]
mov dword [esp + 0x68], eax
mov eax, esi
mov dword [esp + 0x80], edx
mul edi
mov dword [esp + 0x84], eax
mov eax, esi
mov dword [esp + 0x6c], edx
mul ebx
mov esi, dword [esp + 0xb4]
mov dword [esp + 0x64], eax
mov eax, esi
mov dword [esp + 0x74], edx
mul edi
mov dword [esp + 0x60], eax
mov eax, esi
mov dword [esp + 0x10], edx
mul ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 4], edx
mul edi
add ecx, dword [esp + 0x68]
mov dword [esp + 0x54], eax
mov eax, 0
adc eax, 0
add ecx, dword [esp + 0x84]
mov dword [esp + 0x78], ecx
adc eax, 0
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x70]
mov esi, dword [esp]
or eax, ecx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 8], edx
je 0x4c2bcd
mov dword [esp + 0x88], 1
jmp 0x4c2bd6
xor eax, eax
mov dword [esp + 0x88], eax
xor edx, edx
mov dword [esp + 0xa8], edi
xor edi, edi
sub edi, dword [esp + 0x70]
mov dword [esp], esi
mov esi, edx
mov eax, dword [esp + 0x80]
sbb esi, dword [esp + 0x78]
add eax, dword [esp + 0x6c]
mov dword [esp + 0x9c], ecx
mov ecx, edx
adc ecx, 0
add eax, dword [esp + 0x64]
mov dword [esp + 0xa0], edi
mov edi, dword [esp + 0x60]
adc ecx, 0
add edi, dword [esp + 0x7c]
mov dword [esp + 0xa4], esi
mov esi, edx
adc esi, 0
add eax, edi
mov edi, dword [esp + 0x74]
adc ecx, esi
add edi, dword [esp + 0x10]
mov esi, dword [esp + 0x94]
adc edx, 0
add edi, dword [esp + 0xc]
adc edx, 0
add edi, dword [esp + 0x54]
adc edx, 0
add edi, ecx
mov ecx, dword [esp + 0xc8]
adc edx, 0
add eax, dword [esp + 0x88]
mov dword [esp + 0x84], edx
mov edx, ecx
sub edx, eax
mov eax, esi
mov dword [esp + 0x68], edx
sbb eax, edi
sub edx, ecx
mov dword [esp + 0xac], eax
mov ecx, dword [esp + 0x9c]
sbb eax, esi
mov esi, dword [esp]
mov edi, dword [esp + 0xa8]
jb 0x4c2c93
or edx, eax
jne 0x4c2cbe
cmp dword [esp + 0x88], 0
je 0x4c2cc7
mov edx, dword [esp + 0xc8]
mov eax, dword [esp + 0x94]
neg edx
neg eax
add edx, dword [esp + 0x68]
add eax, dword [esp + 0xac]
or edx, eax
jne 0x4c2cc7
mov dword [esp], 1
jmp 0x4c2ccc
xor eax, eax
mov dword [esp], eax
mov eax, dword [esp + 0xc0]
mul ebx
sub esi, eax
mov eax, dword [esp + 4]
mov dword [esp + 0xa8], edi
sbb ecx, edx
xor edi, edi
xor edx, edx
add eax, dword [esp + 8]
adc edx, 0
sub esi, eax
sbb ecx, edx
sub esi, dword [esp + 0x84]
sbb ecx, 0
sub esi, dword [esp]
sbb ecx, 0
mov eax, ecx
sub eax, edi
mov edi, dword [esp + 0xa8]
jge 0x4c2dfe
mov dword [esp + 0xa8], edi
mov dword [esp], ebx
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0x68]
add dword [esp + 0xa8], 0xffffffff
mov ebx, dword [esp + 0xb0]
mov edi, dword [esp + 0xa0]
adc dword [esp], 0xffffffff
add edi, ebx
mov dword [esp + 0xac], edx
mov dword [esp + 0x9c], ecx
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xa4]
adc ecx, edx
mov dword [esp + 0xa0], edi
sub edi, ebx
mov dword [esp + 0xa4], ecx
sbb ecx, edx
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0xac]
jae 0x4c2d8c
mov ebx, 1
jmp 0x4c2d8e
xor ebx, ebx
add eax, dword [esp + 0xb4]
adc edx, dword [esp + 0xc0]
add eax, ebx
adc edx, 0
test ebx, ebx
je 0x4c2dbb
mov edi, eax
mov ebx, edx
sub edi, dword [esp + 0xb4]
sub ebx, dword [esp + 0xc0]
or edi, ebx
je 0x4c2dcf
mov ebx, eax
mov edi, edx
sub ebx, dword [esp + 0xb4]
sbb edi, dword [esp + 0xc0]
jae 0x4c2dd6
mov ebx, 1
jmp 0x4c2dd8
xor ebx, ebx
add esi, ebx
adc ecx, 0
xor ebx, ebx
mov edi, ecx
sub edi, ebx
jl 0x4c2d29
mov dword [esp + 0xac], edx
mov dword [esp + 0x68], eax
mov edi, dword [esp + 0xa8]
mov ebx, dword [esp]
or esi, dword [esp + 0x68]
or ecx, dword [esp + 0xac]
or esi, dword [esp + 0xa0]
or ecx, dword [esp + 0xa4]
or esi, ecx
je 0x4c2e22
mov eax, 1
jmp 0x4c2e24
xor eax, eax
or edi, eax
mov ecx, dword [esp + 0xc4]
mov eax, edi
mov edx, ecx
shl eax, 0x11
mov dword [esp + 0x60], eax
mov eax, ebx
shl edx, 0x11
shr ebx, 0xf
or edx, ebx
mov ebx, dword [esp + 0xb8]
mov esi, ebx
shl eax, 0x11
shr edi, 0xf
shl esi, 0x11
or eax, edi
shr ecx, 0xf
shr ebx, 0xf
or esi, ecx
mov dword [esp + 0x54], 0
mov dword [esp + 0xb8], ebx
cmp dword [esp + 0x90], 0x7ffd
jae 0x4c2f5b
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4c32d7
fnstcw word [esp + 0x8c]
mov ecx, dword [0x4f9f30]
mov edi, dword [0x4f9f38]
mov ebx, dword [esp + 0x8c]
fld qword [ecx]
and ebx, 0xc00
fadd qword [edi]
fstp qword [esp + 0x58]
jne 0x4c2ec2
xor ecx, ecx
mov edi, dword [esp + 0x60]
sub edi, ecx
jl 0x4c2f1c
jmp 0x4c2ee7
cmp ebx, 0xc00
je 0x4c2ee7
xor ecx, ecx
or ecx, dword [esp + 0x98]
je 0x4c2edf
cmp ebx, 0x400
je 0x4c2f1c
jmp 0x4c2ee7
cmp ebx, 0x800
je 0x4c2f1c
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
mov eax, dword [esp + 0x90]
shl eax, 0x10
add eax, dword [esp + 0xb8]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x98]
or edx, eax
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], edx
add esp, 0xcc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
add eax, 1
mov ecx, eax
adc edx, 0
or ecx, edx
jne 0x4c2f33
add esi, 1
adc dword [esp + 0xb8], 0
mov edi, dword [esp + 0x54]
add edi, edi
mov ecx, dword [esp + 0x60]
adc ecx, ecx
or edi, ecx
jne 0x4c2f4a
mov edi, 1
jmp 0x4c2f4c
xor edi, edi
xor ecx, ecx
test ebx, ebx
sete cl
and ecx, edi
not ecx
and eax, ecx
jmp 0x4c2ee7
fnstcw word [esp + 0x8c]
mov ebx, dword [esp + 0x8c]
mov ecx, ebx
and ecx, 0xc00
mov dword [esp + 4], ecx
jne 0x4c2f87
xor ecx, ecx
mov edi, dword [esp + 0x60]
sub edi, ecx
jl 0x4c33a6
jmp 0x4c2fba
cmp dword [esp + 4], 0xc00
je 0x4c2fba
xor ecx, ecx
or ecx, dword [esp + 0x98]
je 0x4c2fac
cmp dword [esp + 4], 0x400
je 0x4c3398
jmp 0x4c2fba
cmp dword [esp + 4], 0x800
je 0x4c33f0
xor ecx, ecx
mov dword [esp], ecx
cmp dword [esp + 0x90], 0x7ffd
jle 0x4c3053
mov eax, dword [0x4f9f34]
cmp dword [esp + 4], 0xc00
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x58]
je 0x4c3389
xor eax, eax
mov edx, dword [esp + 0x98]
or edx, eax
je 0x4c300d
cmp dword [esp + 4], 0x800
je 0x4c334a
mov eax, 1
jmp 0x4c301d
cmp dword [esp + 4], 0x400
je 0x4c3385
xor eax, eax
shl eax, 4
mov esi, dword [ebp + 8]
mov edx, dword [eax + 0x4f3780]
mov ecx, dword [eax + 0x4f3784]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4f3788]
mov eax, dword [eax + 0x4f378c]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
add esp, 0xcc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
je 0x4c33b2
cmp dword [esp + 0x90], 0
jge 0x4c2e7e
cmp dword [esp + 0x90], 0xffffffff
jl 0x4c30bb
cmp dword [esp], 0
je 0x4c30bb
mov edi, esi
mov ecx, 0xffffffff
sub edi, ecx
mov dword [esp], 0x1ffff
mov ecx, dword [esp + 0xb8]
sbb ecx, dword [esp]
jb 0x4c30bb
mov ecx, esi
mov edi, 0xffffffff
sub ecx, edi
mov edi, dword [esp]
neg edi
add edi, dword [esp + 0xb8]
or ecx, edi
jne 0x4c30c5
mov edi, eax
mov ecx, 0xffffffff
sub edi, ecx
mov edi, edx
sbb edi, ecx
jae 0x4c30c5
mov dword [esp + 8], 1
jmp 0x4c30cd
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x90]
neg ecx
mov edi, ecx
and edi, 0x3f
mov dword [esp + 0xc], edi
mov edi, ecx
neg edi
and edi, 0x3f
mov dword [esp + 0x90], ecx
cmp ecx, 0x40
mov dword [esp + 0x10], edi
jge 0x4c31d9
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4c310d
mov dword [esp], 1
jmp 0x4c3114
mov dword [esp], 0
cmp dword [esp + 0x10], 0x1f
ja 0x4c3132
mov edi, edx
mov ecx, dword [esp + 0x10]
shld edi, eax, cl
mov dword [esp + 0x60], edi
mov edi, eax
shl edi, cl
mov dword [esp + 0x54], edi
jmp 0x4c3146
mov edi, eax
mov ecx, dword [esp + 0x10]
shl edi, cl
mov dword [esp + 0x54], 0
mov dword [esp + 0x60], edi
mov ecx, dword [esp + 0x54]
or ecx, dword [esp]
mov dword [esp + 0x54], ecx
cmp dword [esp + 0x10], 0x1f
ja 0x4c3173
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0xb8]
shld edi, esi, cl
mov dword [esp + 4], edi
mov edi, esi
shl edi, cl
mov dword [esp], edi
jmp 0x4c3186
mov edi, esi
mov ecx, dword [esp + 0x10]
shl edi, cl
mov dword [esp], 0
mov dword [esp + 4], edi
cmp dword [esp + 0xc], 0x1f
ja 0x4c319a
mov edi, edx
mov ecx, dword [esp + 0xc]
shrd eax, edx, cl
shr edi, cl
jmp 0x4c31a4
mov eax, edx
xor edi, edi
mov ecx, dword [esp + 0xc]
shr eax, cl
mov edx, dword [esp + 4]
or eax, dword [esp]
or edx, edi
cmp dword [esp + 0xc], 0x1f
ja 0x4c31c2
mov edi, dword [esp + 0xb8]
shrd esi, edi, cl
shr edi, cl
jmp 0x4c31cd
xor edi, edi
mov esi, dword [esp + 0xb8]
shr esi, cl
mov dword [esp + 0xb8], edi
jmp 0x4c3279
je 0x4c331a
cmp dword [esp + 0x90], 0x80
jge 0x4c3260
or edx, dword [esp + 0x60]
or eax, edx
je 0x4c31fb
mov eax, 1
jmp 0x4c31fd
xor eax, eax
cmp dword [esp + 0x10], 0x1f
ja 0x4c321e
mov ecx, edi
mov edi, esi
mov edx, dword [esp + 0xb8]
shld edx, esi, cl
shl edi, cl
mov dword [esp + 0x60], edx
mov dword [esp + 0x54], edi
jmp 0x4c3230
mov edx, esi
mov ecx, edi
shl edx, cl
mov dword [esp + 0x54], 0
mov dword [esp + 0x60], edx
or dword [esp + 0x54], eax
cmp dword [esp + 0xc], 0x1f
ja 0x4c324f
mov eax, esi
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xb8]
shrd eax, edx, cl
shr edx, cl
jmp 0x4c3270
mov ecx, dword [esp + 0xc]
xor edx, edx
mov eax, dword [esp + 0xb8]
shr eax, cl
jmp 0x4c3270
xor eax, eax
mov dword [esp + 0x54], 1
xor edx, edx
mov dword [esp + 0x60], eax
xor esi, esi
mov dword [esp + 0xb8], esi
cmp dword [esp + 8], 0
je 0x4c330c
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4c32aa
mov ecx, dword [0x4f9f38]
xor ebx, ebx
mov dword [esp + 0x90], ebx
fld qword [ecx]
fmul st(0)
fstp qword [esp + 0x58]
jmp 0x4c2e8c
test bl, 0x10
jne 0x4c32ce
mov ecx, dword [0x4f9f38]
xor edi, edi
mov ebx, dword [0x4f9f3c]
mov dword [esp + 0x90], edi
fld qword [ecx]
fmul qword [ebx]
fstp qword [esp + 0x58]
jmp 0x4c32d7
xor ecx, ecx
mov dword [esp + 0x90], ecx
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
mov eax, dword [esp + 0x90]
shl eax, 0x10
add eax, dword [esp + 0xb8]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x98]
or edx, eax
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], edx
add esp, 0xcc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor ecx, ecx
mov dword [esp + 0x90], ecx
jmp 0x4c2e7e
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4c332e
mov dword [esp + 0x54], 1
jmp 0x4c3334
xor ecx, ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x60], edx
or dword [esp + 0x54], eax
mov eax, esi
mov edx, dword [esp + 0xb8]
jmp 0x4c3270
mov ebx, 1
shl ebx, 4
mov esi, dword [ebp + 8]
mov eax, dword [ebx + 0x4f37c0]
mov edx, dword [ebx + 0x4f37c4]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x4f37c8]
mov ebx, dword [ebx + 0x4f37cc]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ebx
add esp, 0xcc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor ebx, ebx
jmp 0x4c334f
xor eax, eax
mov edx, dword [esp + 0x98]
or edx, eax
jne 0x4c334a
jmp 0x4c3385
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4c2fba
mov dword [esp], 1
jmp 0x4c2fbf
mov ebx, 0x1ffff
mov ecx, 0xffffffff
mov edi, esi
neg ebx
add ebx, dword [esp + 0xb8]
sub edi, ecx
or edi, ebx
jne 0x4c2e7e
mov ebx, eax
sub ebx, ecx
neg ecx
add ecx, edx
or ebx, ecx
jne 0x4c2e7e
cmp dword [esp], 0
jne 0x4c2fd0
jmp 0x4c2e7e
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4c2fba
mov dword [esp], 1
jmp 0x4c2fbf
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x10]
sub ecx, dword [esp + 0xb0]
sub eax, dword [esp + 0xc]
or ecx, eax
jne 0x4c2475
mov eax, dword [esp + 0x54]
lea ebx, [eax + 0x3ffe]
cmp ebx, 0x7ffd
jle 0x4c34cf
fnstcw word [esp + 0x8c]
mov eax, dword [0x4f9f34]
mov ecx, dword [esp + 0x8c]
and ecx, 0xc00
fld qword [eax]
cmp ecx, 0xc00
fmul st(0)
fstp qword [esp + 0x58]
je 0x4c3665
xor eax, eax
mov edx, dword [esp + 0x98]
or edx, eax
je 0x4c348b
cmp ecx, 0x800
je 0x4c3626
mov eax, 1
jmp 0x4c3499
cmp ecx, 0x400
je 0x4c3661
xor eax, eax
shl eax, 4
mov esi, dword [ebp + 8]
mov edx, dword [eax + 0x4f3780]
mov ecx, dword [eax + 0x4f3784]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4f3788]
mov eax, dword [eax + 0x4f378c]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
add esp, 0xcc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test ebx, ebx
js 0x4c3502
mov ecx, dword [ebp + 8]
xor eax, eax
shl ebx, 0x10
add ebx, 0x10000
mov edx, dword [esp + 0x98]
or edx, ebx
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add esp, 0xcc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp ebx, 0xffffffcf
jle 0x4c355c
mov edx, dword [ebp + 8]
xor eax, eax
mov ecx, dword [esp + 0x54]
add ecx, 0x402e
mov dword [edx], eax
cmp ecx, 0x1f
mov dword [edx + 4], eax
mov dword [esp + 0x54], ecx
ja 0x4c3532
xor eax, eax
mov edx, 1
shld eax, edx, cl
shl edx, cl
jmp 0x4c353d
xor eax, eax
xor edx, edx
mov eax, 1
shl eax, cl
mov ebx, dword [ebp + 8]
mov ecx, dword [esp + 0x98]
or ecx, eax
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], ecx
add esp, 0xcc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp ebx, 0xffffff8f
jle 0x4c35b8
add eax, 0x406e
mov dword [esp + 0x54], eax
cmp eax, 0x1f
ja 0x4c3585
xor eax, eax
mov edx, 1
xor ebx, ebx
mov eax, edx
mov ecx, dword [esp + 0x54]
shld ebx, edx, cl
shl eax, cl
jmp 0x4c3592
mov ebx, 1
xor eax, eax
mov ecx, dword [esp + 0x54]
shl ebx, cl
mov edx, dword [ebp + 8]
mov dword [edx], eax
mov eax, dword [esp + 0x98]
mov dword [edx + 4], ebx
mov dword [edx + 8], 0
mov dword [edx + 0xc], eax
add esp, 0xcc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
fnstcw word [esp + 0x8c]
mov eax, dword [0x4f9f38]
xor edx, edx
mov ecx, dword [esp + 0x8c]
and ecx, 0xc00
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x58]
or edx, dword [esp + 0x98]
je 0x4c35f1
xor eax, eax
cmp ecx, 0x400
sete al
jmp 0x4c35fc
xor eax, eax
cmp ecx, 0x800
sete al
mov edx, dword [ebp + 8]
mov dword [edx], eax
mov eax, dword [esp + 0x98]
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov dword [edx + 0xc], eax
add esp, 0xcc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ebx, 1
shl ebx, 4
mov esi, dword [ebp + 8]
mov eax, dword [ebx + 0x4f37c0]
mov edx, dword [ebx + 0x4f37c4]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x4f37c8]
mov ebx, dword [ebx + 0x4f37cc]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ebx
add esp, 0xcc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor ebx, ebx
jmp 0x4c362b
xor eax, eax
mov edx, dword [esp + 0x98]
or edx, eax
jne 0x4c3626
jmp 0x4c3661
mov eax, edi
or eax, dword [esp + 0x10]
je 0x4c3685
mov dword [esp], 1
jmp 0x4c368a
xor eax, eax
mov dword [esp], eax
mov eax, dword [esp]
or eax, ebx
mov ecx, dword [esp + 0x6c]
mov dword [esp], eax
or ecx, eax
jne 0x4c36a3
mov dword [esp], 1
jmp 0x4c36ee
mov eax, 0x10000
mov ecx, dword [esp + 0x6c]
sub ecx, eax
jae 0x4c36b9
mov dword [esp], 2
jmp 0x4c36ee
mov ecx, 0x7fff0000
mov eax, dword [esp + 0x6c]
sub eax, ecx
jae 0x4c36cf
mov dword [esp], 4
jmp 0x4c36ee
mov eax, dword [esp + 0x6c]
sub eax, ecx
jb 0x4c36e7
mov ecx, dword [esp]
or ecx, eax
je 0x4c36e7
mov dword [esp], 0x10
jmp 0x4c36ee
mov dword [esp], 8
mov eax, dword [esp + 0xb0]
or eax, dword [esp + 0xc]
je 0x4c3705
mov dword [esp + 4], 1
jmp 0x4c370b
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
or eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x68]
mov dword [esp + 4], eax
or ecx, eax
jne 0x4c3729
mov eax, 1
jmp 0x4c376d
mov eax, 0x10000
mov ecx, dword [esp + 0x68]
sub ecx, eax
jae 0x4c373d
mov eax, 2
jmp 0x4c376d
mov ecx, 0x7fff0000
mov eax, dword [esp + 0x68]
sub eax, ecx
jae 0x4c3751
mov eax, 4
jmp 0x4c376d
mov eax, dword [esp + 0x68]
sub eax, ecx
jb 0x4c3768
mov ecx, dword [esp + 4]
or ecx, eax
je 0x4c3768
mov eax, 0x10
jmp 0x4c376d
mov eax, 8
mov ecx, dword [esp]
or ecx, eax
test cl, 0x10
je 0x4c393c
cmp eax, dword [esp]
je 0x4c37ee
cmp dword [esp], 0x10
je 0x4c37a4
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 0x10]
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
jmp 0x4c37bb
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov eax, edi
mov edx, dword [esp + 0x10]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
mov ecx, ebx
xor edx, edx
and ecx, 0x8000
or ecx, edx
jne 0x4c3920
mov edx, dword [ebp + 8]
mov dword [edx + 8], eax
mov eax, dword [0x4f9f28]
mov dword [edx + 0xc], ebx
fld qword [eax]
fdiv st(0)
fstp qword [esp + 0x58]
mov eax, dword [edx + 8]
mov ebx, dword [edx + 0xc]
jmp 0x4c3920
mov edx, dword [esp + 0x64]
xor eax, eax
and edx, 0x8000
or edx, eax
jne 0x4c3805
mov eax, 1
jmp 0x4c3807
xor eax, eax
mov ecx, dword [esp + 8]
xor edx, edx
and ecx, 0x8000
or ecx, edx
jne 0x4c381e
mov edx, 1
jmp 0x4c3820
xor edx, edx
mov ecx, eax
or ecx, edx
je 0x4c3834
mov ecx, dword [0x4f9f28]
fld qword [ecx]
fdiv st(0)
fstp qword [esp + 0x58]
cmp edx, eax
je 0x4c3845
test eax, eax
jne 0x4c390a
jmp 0x4c38c8
mov eax, ebx
sub eax, dword [esp + 0xb4]
mov edx, dword [esp + 0x6c]
sbb edx, dword [esp + 0x68]
jb 0x4c390a
mov eax, dword [esp + 0x6c]
mov edx, ebx
sub edx, dword [esp + 0xb4]
sub eax, dword [esp + 0x68]
or edx, eax
jne 0x4c3888
mov eax, edi
sub eax, dword [esp + 0xb0]
mov edx, dword [esp + 0x10]
sbb edx, dword [esp + 0xc]
jb 0x4c390a
mov eax, dword [esp + 0xb4]
sub eax, ebx
mov edx, dword [esp + 0x68]
sbb edx, dword [esp + 0x6c]
jb 0x4c38c8
mov eax, dword [esp + 0xb4]
sub eax, ebx
mov ebx, dword [esp + 0x68]
sub ebx, dword [esp + 0x6c]
or eax, ebx
jne 0x4c38e0
mov eax, dword [esp + 0xb0]
sub eax, dword [esp + 0x80]
mov edx, dword [esp + 0xc]
sbb edx, dword [esp + 0x10]
jae 0x4c38e0
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
jmp 0x4c3920
mov eax, dword [ebp + 0xc]
xor edx, edx
mov ecx, dword [eax + 0xc]
and ecx, 0x80000000
or ecx, edx
je 0x4c390a
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
jmp 0x4c3920
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
mov edx, dword [ebp + 8]
or ebx, 0x8000
mov dword [edx + 8], eax
mov dword [edx + 0xc], ebx
add esp, 0xcc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test dword [esp], eax
je 0x4c3987
test byte [esp], 2
jne 0x4c3987
mov eax, dword [0x4f9f28]
mov edi, dword [ebp + 8]
mov edx, dword [0x4f3740]
fld qword [eax]
fdiv st(0)
mov ecx, dword [0x4f3744]
fstp qword [esp + 0x58]
mov dword [edi], edx
mov dword [edi + 4], ecx
mov ebx, dword [0x4f3748]
mov esi, dword [0x4f374c]
mov dword [edi + 8], ebx
mov dword [edi + 0xc], esi
add esp, 0xcc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test byte [esp], 8
je 0x4c39f0
test al, 2
je 0x4c39a4
mov eax, dword [0x4f9f2c]
mov edx, dword [0x4f9f30]
fld qword [eax]
fmul qword [edx]
fstp qword [esp + 0x58]
xor eax, eax
mov edx, dword [esp + 0x98]
or edx, eax
je 0x4c39b8
mov eax, 1
jmp 0x4c39ba
xor eax, eax
shl eax, 4
mov esi, dword [ebp + 8]
mov edx, dword [eax + 0x4f3780]
mov ecx, dword [eax + 0x4f3784]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4f3788]
mov eax, dword [eax + 0x4f378c]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
add esp, 0xcc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test al, 1
je 0x4c3a53
mov eax, dword [0x4f9f30]
xor ecx, ecx
mov edx, dword [0x4f9f28]
mov ebx, dword [esp + 0x98]
fld qword [eax]
or ebx, ecx
fdiv qword [edx]
fstp qword [esp + 0x58]
je 0x4c3a1b
mov eax, 1
jmp 0x4c3a1d
xor eax, eax
shl eax, 4
mov esi, dword [ebp + 8]
mov edx, dword [eax + 0x4f3780]
mov ecx, dword [eax + 0x4f3784]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4f3788]
mov eax, dword [eax + 0x4f378c]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
add esp, 0xcc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test byte [esp], 1
jne 0x4c3a5d
test al, 8
je 0x4c3ac1
test cl, 2
je 0x4c3a75
mov eax, dword [0x4f9f2c]
mov edx, dword [0x4f9f30]
fld qword [eax]
fmul qword [edx]
fstp qword [esp + 0x58]
xor eax, eax
mov edx, dword [esp + 0x98]
or edx, eax
je 0x4c3a89
mov eax, 1
jmp 0x4c3a8b
xor eax, eax
shl eax, 4
mov esi, dword [ebp + 8]
mov edx, dword [eax + 0x4f37a0]
mov ecx, dword [eax + 0x4f37a4]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4f37a8]
mov eax, dword [eax + 0x4f37ac]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
add esp, 0xcc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x4f9f2c]
mov ecx, dword [0x4f9f30]
cmp dword [esp + 0x60], 0
fld qword [eax]
fmul qword [ecx]
fstp qword [esp + 0x58]
jne 0x4c3c87
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
or eax, esi
mov dword [esp + 4], esi
jne 0x4c3b0d
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xc]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 0x60], 0x31
jmp 0x4c3b15
mov dword [esp + 0x60], 0xfffffff1
mov eax, 1
mov ecx, dword [esp + 4]
sub ecx, eax
jae 0x4c3b2f
mov eax, dword [esp + 0x60]
add eax, 0x20
mov dword [esp + 0x60], eax
jmp 0x4c3b36
mov eax, dword [esp + 4]
mov dword [esp], eax
bsr eax, dword [esp]
mov ecx, dword [esp + 0x60]
sub ecx, eax
add ecx, 0x1f
mov dword [esp + 0x60], ecx
cmp ecx, 0x40
jge 0x4c3c21
cmp dword [esp + 0x60], 0x1f
ja 0x4c3b69
mov eax, dword [esp + 0xb4]
shld esi, eax, cl
shl eax, cl
mov dword [esp + 4], eax
jmp 0x4c3b7a
mov esi, dword [esp + 0xb4]
mov dword [esp + 4], 0
shl esi, cl
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4c3ba9
mov dword [esp], edx
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0xc]
mov edi, eax
shrd edx, eax, cl
mov dword [esp + 0xb4], edx
shr edi, cl
mov dword [esp + 8], edi
mov edx, dword [esp]
jmp 0x4c3bbc
mov edi, dword [esp + 0xc]
xor eax, eax
shr edi, cl
mov dword [esp + 8], eax
mov dword [esp + 0xb4], edi
mov eax, dword [esp + 0xb4]
or eax, dword [esp + 4]
or esi, dword [esp + 8]
mov dword [esp + 0xb4], eax
cmp dword [esp + 0x60], 0x1f
ja 0x4c3bfd
mov dword [esp], edx
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0xc]
shld eax, edx, cl
shl edx, cl
mov dword [esp + 4], edx
mov dword [esp + 0xc], eax
mov edx, dword [esp]
jmp 0x4c3c14
mov ecx, dword [esp + 0x60]
xor eax, eax
mov edi, dword [esp + 0xb0]
shl edi, cl
mov dword [esp + 4], eax
mov dword [esp + 0xc], edi
mov eax, dword [esp + 4]
mov dword [esp + 0xb0], eax
jmp 0x4c3c7c
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4c3c42
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0xb0]
shld esi, eax, cl
shl eax, cl
mov dword [esp + 0xb4], eax
jmp 0x4c3c54
mov esi, dword [esp + 0xb0]
xor eax, eax
mov dword [esp + 0xb4], eax
shl esi, cl
cmp dword [esp + 0x60], 0x40
jne 0x4c3c62
mov eax, dword [esp + 0xb0]
jne 0x4c3c68
mov esi, dword [esp + 0xc]
xor ecx, ecx
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x60]
neg eax
inc eax
mov dword [esp + 0x60], eax
cmp dword [esp + 0x54], 0
jne 0x4c243b
mov eax, ebx
mov dword [esp + 4], ebx
or eax, edx
mov dword [esp], edx
jne 0x4c3cbb
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x10]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 0x54], 0x31
jmp 0x4c3cc3
mov dword [esp + 0x54], 0xfffffff1
mov eax, 1
mov ecx, dword [esp]
sub ecx, eax
jae 0x4c3cdc
mov eax, dword [esp + 0x54]
add eax, 0x20
mov dword [esp + 0x54], eax
jmp 0x4c3ce3
mov eax, dword [esp]
mov dword [esp + 4], eax
bsr eax, dword [esp + 4]
mov ecx, dword [esp + 0x54]
sub ecx, eax
add ecx, 0x1f
mov dword [esp + 0x54], ecx
cmp ecx, 0x40
jge 0x4c3d97
cmp dword [esp + 0x54], 0x1f
ja 0x4c3d10
shld edx, ebx, cl
shl ebx, cl
mov dword [esp + 4], ebx
jmp 0x4c3d1c
mov edx, ebx
mov dword [esp + 4], 0
shl edx, cl
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4c3d3b
mov ebx, dword [esp + 0x80]
mov eax, dword [esp + 0x10]
shrd ebx, eax, cl
shr eax, cl
mov dword [esp], eax
jmp 0x4c3d48
mov ebx, dword [esp + 0x10]
mov dword [esp], 0
shr ebx, cl
or ebx, dword [esp + 4]
or edx, dword [esp]
cmp dword [esp + 0x54], 0x1f
ja 0x4c3d73
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x80]
mov edi, dword [esp + 0x10]
shld edi, eax, cl
shl eax, cl
mov dword [esp + 0x10], edi
mov dword [esp], eax
jmp 0x4c3d8b
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x80]
shl eax, cl
mov dword [esp], 0
mov dword [esp + 0x10], eax
mov eax, dword [esp]
mov dword [esp + 0x80], eax
jmp 0x4c3ddd
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4c3db1
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x80]
shld edx, ebx, cl
shl ebx, cl
jmp 0x4c3dbc
mov edx, dword [esp + 0x80]
xor ebx, ebx
shl edx, cl
cmp dword [esp + 0x54], 0x40
jne 0x4c3dca
mov ebx, dword [esp + 0x80]
jne 0x4c3dd0
mov edx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x54]
neg eax
inc eax
mov dword [esp + 0x54], eax
jmp 0x4c243b
test dword [0x544dac], 0xfffffe00
jne 0x4c09f0
test dword [0x544dac], 0xffffffff
jne 0x4c2380
call fcn.004bb7c0
jmp fcn.004c3df0