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

Disassembly:
sub esp, 0x68
push ebx
push ebp
mov ebp, dword [esp + 0x78]
mov eax, ecx
mov dword [esp + 0x50], eax
push esi
mov esi, ebp
push edi
mov edi, dword [esp + 0x84]
test eax, eax
jne 0x48dde4
mov dword [esp + 0x54], 0xfffffbcc
jmp 0x48ddf3
add eax, 0xfffffbcb
or edi, 0x100000
mov dword [esp + 0x54], eax
xor edx, edx
mov eax, esi
inc edx
xor ecx, ecx
and eax, edx
mov byte [esp + 0x13], dl
or eax, ecx
je 0x48de08
mov byte [esp + 0x13], cl
mov eax, esi
mov ebx, edi
shld ebx, eax, 2
shl eax, 2
or ebp, dword [esp + 0x84]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x5c], eax
jne 0x48de2e
mov dword [esp + 0x40], ecx
cmp dword [esp + 0x58], edx
ja 0x48de32
mov dword [esp + 0x40], edx
mov ebx, dword [esp + 0x54]
shld edi, esi, 1
mov byte [esp + 0x10], cl
add esi, esi
mov byte [esp + 0x11], cl
mov dword [esp + 0x28], edi
mov dword [esp + 0x30], esi
test ebx, ebx
js 0x48e45c
xor eax, eax
imul ecx, ebx, 0x13441
push 0
shr ecx, 0x12
cmp ebx, 3
setg al
sub ecx, eax
imul eax, ecx, 0x12934f
mov ebp, ecx
shl ebp, 4
add ebp, 0x6dc520
mov dword [esp + 0x3c], ecx
shr eax, 0x13
sub eax, ebx
add eax, ecx
mov ecx, dword [ebp + 4]
mov dword [esp + 0x30], eax
mov eax, dword [ebp]
mov dword [esp + 0x4c], eax
mul esi
mov dword [esp + 0x50], ecx
mov ebx, eax
mov ecx, edx
mov eax, dword [ebp]
mul edi
mov esi, eax
mov edi, edx
mov eax, dword [ebp + 4]
add esi, ecx
adc edi, 0
mul dword [esp + 0x34]
add eax, esi
mov ecx, edx
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 4]
pop esi
adc ecx, esi
mul dword [esp + 0x28]
push 0
mov dword [esp + 0x28], eax
mov eax, edx
mov edx, dword [esp + 0x28]
add edx, ecx
adc eax, esi
add edx, edi
mov dword [esp + 0x28], edx
adc eax, esi
or dword [esp + 0x20], esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x5c], eax
xor eax, eax
or eax, ebx
mov dword [esp + 0x54], esi
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x40], eax
mov eax, esi
mul dword [esp + 0x34]
pop ebp
mov ebx, eax
mov ecx, edx
mov eax, esi
mul dword [esp + 0x28]
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0x3c]
add esi, ecx
adc edi, ebp
mul dword [esp + 0x30]
add eax, esi
mov ecx, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x3c]
adc ecx, ebp
mul dword [esp + 0x28]
add eax, ecx
adc edx, ebp
add eax, edi
mov dword [esp + 0x18], eax
adc edx, ebp
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x14]
xor esi, esi
mov ecx, dword [esp + 0x24]
or esi, ebx
xor ebx, ebx
or edx, ebx
add esi, ecx
mov dword [esp + 0x60], esi
adc edx, dword [esp + 0x58]
mov dword [esp + 0x14], edx
cmp edx, dword [esp + 0x58]
ja 0x48df70
jb 0x48df67
cmp esi, ecx
jae 0x48df70
xor ecx, ecx
mov edi, ebx
inc ecx
mov eax, ecx
jmp 0x48df84
xorps xmm0, xmm0
xor ecx, ecx
movlpd qword [esp + 0x70], xmm0
inc ecx
mov edi, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
add dword [esp + 0x18], eax
mov eax, dword [esp + 0x48]
adc dword [esp + 0x30], edi
mov ebp, dword [esp + 0x44]
add eax, ebp
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x4c]
adc eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x1c]
ja 0x48dfb6
jb 0x48dfb0
cmp dword [esp + 0x58], ebp
jae 0x48dfb6
mov edi, ecx
mov ebp, ebx
jmp 0x48dfc7
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov ebp, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x50]
add eax, edi
mov edi, dword [esp + 0x3c]
adc edi, ebp
add eax, esi
adc edi, edx
cmp edi, edx
ja 0x48dfe7
jb 0x48dfe1
cmp eax, esi
jae 0x48dfe7
mov eax, ecx
mov edx, ebx
jmp 0x48dff8
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
mov ebp, dword [esp + 0x2c]
push 7
pop ecx
sub ecx, ebp
mov dword [esp + 0x54], ecx
lea ecx, [ebp + 0x19]
shr edi, cl
xor ebp, ebp
add eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x54]
adc edx, dword [esp + 0x30]
call fcn.00611c30
xor ecx, ecx
or edi, eax
mov eax, dword [esp + 0x1c]
or ebp, edx
inc ecx
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], ebp
cmp dword [esp + 0x40], ecx
jne 0x48e0c8
mov ebp, dword [esp + 0x44]
mov edi, ebp
sub edi, dword [esp + 0x48]
sbb eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x1c]
jb 0x48e05c
ja 0x48e054
cmp edi, ebp
jbe 0x48e05c
mov edi, ecx
mov dword [esp + 0x4c], ebx
jmp 0x48e071
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
mov dword [esp + 0x4c], eax
mov ebp, dword [esp + 0x14]
mov edx, esi
sub edx, dword [esp + 0x50]
sbb ebp, dword [esp + 0x3c]
sub edx, edi
sbb ebp, dword [esp + 0x4c]
cmp ebp, dword [esp + 0x14]
jb 0x48e097
ja 0x48e091
cmp edx, esi
jbe 0x48e097
mov edx, ecx
mov edi, ebx
jmp 0x48e0a8
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov edi, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x2c]
xor esi, esi
mov eax, dword [esp + 0x18]
lea ecx, [ecx + 0x19]
shr ebp, cl
sub eax, edx
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x54]
sbb edx, edi
jmp 0x48e200
mov edx, dword [esp + 0x44]
mov ebp, eax
mov esi, edx
shld ebp, esi, 1
add esi, esi
mov dword [esp + 0x1c], ebp
cmp ebp, eax
ja 0x48e0ee
jb 0x48e0e4
cmp esi, edx
jae 0x48e0ee
mov dword [esp + 0x44], ecx
mov dword [esp + 0x28], ebx
jmp 0x48e107
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov eax, dword [esp + 0x74]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x44], eax
mov edi, dword [esp + 0x60]
mov edx, edi
mov ebp, dword [esp + 0x14]
shld ebp, edx, 1
add edx, edx
add edx, dword [esp + 0x44]
adc ebp, dword [esp + 0x28]
mov dword [esp + 0x58], ebp
cmp ebp, dword [esp + 0x14]
ja 0x48e139
jb 0x48e12f
cmp edx, edi
jae 0x48e139
mov dword [esp + 0x44], ecx
mov dword [esp + 0x28], ebx
jmp 0x48e152
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov eax, dword [esp + 0x74]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x44], eax
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
shld eax, edi, 1
add edi, edi
add edi, dword [esp + 0x44]
adc eax, dword [esp + 0x28]
mov dword [esp + 0x44], eax
mov eax, esi
sub eax, dword [esp + 0x48]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x1c]
sbb eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x1c]
jb 0x48e194
ja 0x48e18c
cmp dword [esp + 0x60], esi
jbe 0x48e194
mov esi, ecx
mov dword [esp + 0x4c], ebx
jmp 0x48e1a9
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov eax, dword [esp + 0x74]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x4c], eax
mov eax, edx
sub eax, dword [esp + 0x50]
sbb ebp, dword [esp + 0x3c]
sub eax, esi
sbb ebp, dword [esp + 0x4c]
cmp ebp, dword [esp + 0x58]
jb 0x48e1cd
ja 0x48e1c5
cmp eax, edx
jbe 0x48e1cd
mov eax, ecx
mov dword [esp + 0x50], ebx
jmp 0x48e1e2
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov eax, dword [esp + 0x74]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x2c]
xor esi, esi
mov edx, dword [esp + 0x44]
add ecx, 0x1a
shr ebp, cl
sub edi, eax
push 6
sbb edx, dword [esp + 0x54]
mov eax, edi
pop ecx
sub ecx, dword [esp + 0x2c]
call fcn.00611c30
mov ecx, dword [esp + 0x2c]
or ebp, eax
mov eax, dword [esp + 0x18]
or esi, edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x28], ebp
xor ebp, ebp
lea ecx, [ecx + 0x19]
mov dword [esp + 0x1c], esi
shr dword [esp + 0x14], cl
mov ecx, dword [esp + 0x54]
call fcn.00611c30
or dword [esp + 0x14], eax
or ebp, edx
cmp dword [esp + 0x38], 0x15
mov dword [esp + 0x2c], ebp
ja 0x48e2f3
mov ebp, dword [esp + 0x5c]
mov esi, 0xcccccccd
mov eax, esi
xor edi, edi
mul ebp
mov eax, esi
mov ecx, edx
mul dword [esp + 0x34]
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul ebp
add eax, ecx
mov esi, edx
mov eax, 0xcccccccc
adc esi, ebx
xor ecx, ecx
mul dword [esp + 0x34]
add esi, eax
adc ecx, edx
add esi, edi
adc ecx, ebx
shrd esi, ecx, 2
mov ecx, ebp
imul eax, esi, 5
sub ecx, eax
jne 0x48e2a3
push dword [esp + 0x34]
push ebp
call fcn.0048ce91
cmp eax, dword [esp + 0x40]
sbb al, al
inc al
jmp 0x48e8bb
mov eax, dword [esp + 0x34]
cmp byte [esp + 0x13], bl
je 0x48e2d6
sub ebp, dword [esp + 0x40]
sbb eax, ebx
add ebp, 0xffffffff
adc eax, 0xffffffff
push eax
push ebp
call fcn.0048ce91
cmp eax, dword [esp + 0x40]
pop ecx
sbb al, al
inc al
mov byte [esp + 0x14], al
mov al, bl
pop ecx
mov cl, byte [esp + 0x10]
jmp 0x48e2f7
add ebp, 2
adc eax, ebx
push eax
push ebp
call fcn.0048ce91
cmp eax, dword [esp + 0x40]
pop ecx
sbb eax, eax
inc eax
sub dword [esp + 0x28], eax
pop ecx
sbb dword [esp + 0x20], ebx
mov al, bl
mov cl, al
mov dword [esp + 0x18], ebx
mov byte [esp + 0x12], bl
test cl, cl
jne 0x48e9b8
test al, al
jne 0x48e9b8
mov esi, dword [esp + 0x24]
mov ebp, 0x5c28f5c3
mov byte [esp + 0x13], bl
mov eax, ebp
mov ebx, dword [esp + 0x20]
xor edi, edi
shrd esi, ebx, 2
push 0
mul esi
shr ebx, 2
mov eax, ebp
mov ecx, edx
mul ebx
pop ebp
add ecx, eax
mov eax, 0x28f5c28f
push ebp
adc edi, edx
mul esi
add eax, ecx
mov esi, edx
mov eax, 0x28f5c28f
adc esi, ebp
xor ecx, ecx
mul ebx
mov ebx, dword [esp + 0x20]
add esi, eax
mov eax, 0x5c28f5c3
adc ecx, edx
add esi, edi
adc ecx, ebp
xor edi, edi
shrd esi, ecx, 2
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x2c]
shrd esi, ebx, 2
shr ecx, 2
mul esi
mov dword [esp + 0x5c], ecx
mov eax, 0x5c28f5c3
shr ebx, 2
mov ecx, edx
mul ebx
add ecx, eax
mov eax, 0x28f5c28f
adc edi, edx
mul esi
add eax, ecx
mov esi, edx
mov eax, 0x28f5c28f
adc esi, ebp
xor ecx, ecx
mul ebx
pop ebx
add esi, eax
adc ecx, edx
add esi, edi
adc ecx, ebx
shrd esi, ecx, 2
shr ecx, 2
mov dword [esp + 0x70], esi
mov dword [esp + 0x68], ecx
cmp dword [esp + 0x58], ecx
jb 0x48e8ce
ja 0x48e3d1
cmp dword [esp + 0x5c], esi
jbe 0x48e8ce
mov esi, dword [esp + 0x14]
mov ebp, 0x5c28f5c3
mov eax, dword [esp + 0x2c]
xor edi, edi
shrd esi, eax, 2
push 0
shr eax, 2
mov ebx, eax
mov eax, ebp
mul esi
mov eax, ebp
mov ecx, edx
mul ebx
add ecx, eax
mov eax, 0x28f5c28f
adc edi, edx
mul esi
add eax, ecx
mov esi, edx
mov ecx, dword [esp + 0x18]
mov eax, 0x28f5c28f
adc esi, 0
xor ebp, ebp
mul ebx
pop ebx
add esi, eax
push 2
adc ebp, edx
add esi, edi
pop edi
adc ebp, ebx
mov dword [esp + 0x18], edi
shrd esi, ebp, 2
imul eax, esi, 0x64
shr ebp, 2
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x68]
sub ecx, eax
cmp ecx, 0x32
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x70]
sbb al, al
inc al
mov dword [esp + 0x28], ecx
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x5c]
jmp 0x48e8de
xor ecx, ecx
mov eax, ebx
neg eax
mov ebp, 0x6dd760
cmp eax, edx
push 0
setg cl
imul edx, ebx, 0xfff4d105
shr edx, 0x14
sub edx, ecx
add ebx, edx
mov dword [esp + 0x74], edx
imul eax, ebx, 0xffed6cb1
mov dword [esp + 0x3c], ebx
shr eax, 0x13
sub edx, eax
mov eax, ebx
shl eax, 4
sub ebp, eax
mov dword [esp + 0x30], edx
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x50], eax
mul esi
mov dword [esp + 0x4c], ecx
mov ebx, eax
mov ecx, edx
mov eax, dword [ebp]
mul edi
mov esi, eax
mov edi, edx
mov eax, dword [ebp + 4]
add esi, ecx
adc edi, 0
mul dword [esp + 0x34]
add eax, esi
mov ecx, edx
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 4]
pop esi
adc ecx, esi
mul dword [esp + 0x28]
push 0
mov dword [esp + 0x58], eax
mov eax, edx
mov edx, dword [esp + 0x58]
add edx, ecx
adc eax, esi
add edx, edi
mov dword [esp + 0x58], edx
adc eax, esi
or dword [esp + 0x40], esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x64], eax
xor eax, eax
or eax, ebx
mov dword [esp + 0x48], esi
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x20], eax
mov eax, esi
mul dword [esp + 0x34]
pop ebp
mov ebx, eax
mov ecx, edx
mov eax, esi
mul dword [esp + 0x28]
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0x1c]
add esi, ecx
adc edi, ebp
mul dword [esp + 0x30]
add eax, esi
mov ecx, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
adc ecx, ebp
mul dword [esp + 0x28]
add eax, ecx
adc edx, ebp
mov ecx, dword [esp + 0x54]
add eax, edi
mov dword [esp + 0x30], eax
adc edx, ebp
xor esi, esi
mov dword [esp + 0x18], edx
or esi, ebx
mov edx, dword [esp + 0x14]
xor ebx, ebx
or edx, ebx
add esi, ecx
mov dword [esp + 0x28], esi
adc edx, dword [esp + 0x60]
mov dword [esp + 0x14], edx
cmp edx, dword [esp + 0x60]
ja 0x48e580
jb 0x48e577
cmp esi, ecx
jae 0x48e580
xor ecx, ecx
mov edi, ebx
inc ecx
mov eax, ecx
jmp 0x48e594
xorps xmm0, xmm0
xor ecx, ecx
movlpd qword [esp + 0x68], xmm0
inc ecx
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x4c]
adc dword [esp + 0x18], edi
mov edi, dword [esp + 0x50]
add eax, edi
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x48]
adc eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0x3c]
ja 0x48e5c6
jb 0x48e5c0
cmp dword [esp + 0x60], edi
jae 0x48e5c6
mov edi, ecx
mov ebp, ebx
jmp 0x48e5d7
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x44]
add eax, edi
mov edi, dword [esp + 0x1c]
adc edi, ebp
add eax, esi
adc edi, edx
cmp edi, edx
ja 0x48e5f7
jb 0x48e5f1
cmp eax, esi
jae 0x48e5f7
mov eax, ecx
mov edx, ebx
jmp 0x48e608
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
mov ebp, dword [esp + 0x2c]
push 9
pop ecx
sub ecx, ebp
mov dword [esp + 0x54], ecx
lea ecx, [ebp + 0x17]
shr edi, cl
xor ebp, ebp
add eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x54]
adc edx, dword [esp + 0x18]
call fcn.00611c30
xor ecx, ecx
or edi, eax
or ebp, edx
mov dword [esp + 0x24], edi
inc ecx
mov dword [esp + 0x20], ebp
cmp dword [esp + 0x40], ecx
jne 0x48e6ee
mov edx, dword [esp + 0x50]
mov eax, edx
sub eax, dword [esp + 0x4c]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x3c]
sbb eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x3c]
jb 0x48e674
ja 0x48e66a
cmp dword [esp + 0x60], edx
jbe 0x48e674
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], ebx
jmp 0x48e68d
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x50], eax
mov ebp, dword [esp + 0x14]
mov edx, esi
sub edx, dword [esp + 0x44]
sbb ebp, dword [esp + 0x1c]
sub edx, dword [esp + 0x50]
sbb ebp, dword [esp + 0x4c]
cmp ebp, dword [esp + 0x14]
jb 0x48e6b7
ja 0x48e6af
cmp edx, esi
jbe 0x48e6b7
mov edx, ecx
mov dword [esp + 0x50], ebx
jmp 0x48e6cc
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x2c]
xor esi, esi
mov eax, dword [esp + 0x30]
lea ecx, [ecx + 0x17]
shr ebp, cl
sub eax, edx
mov edx, dword [esp + 0x18]
sbb edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
jmp 0x48e832
mov eax, dword [esp + 0x50]
mov esi, eax
mov ebp, dword [esp + 0x3c]
shld ebp, esi, 1
add esi, esi
mov dword [esp + 0x58], ebp
cmp ebp, dword [esp + 0x3c]
ja 0x48e716
jb 0x48e70e
cmp esi, eax
jae 0x48e716
mov edi, ecx
mov dword [esp + 0x50], ebx
jmp 0x48e72b
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0x28]
mov ebp, dword [esp + 0x14]
shld ebp, edx, 1
add edx, edx
add edx, edi
adc ebp, dword [esp + 0x50]
mov dword [esp + 0x68], ebp
cmp ebp, dword [esp + 0x14]
ja 0x48e75b
jb 0x48e751
cmp edx, dword [esp + 0x28]
jae 0x48e75b
mov dword [esp + 0x50], ecx
mov dword [esp + 0x28], ebx
jmp 0x48e774
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov eax, dword [esp + 0x64]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x50], eax
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], edi
shld dword [esp + 0x3c], eax, 1
mov edi, dword [esp + 0x24]
add eax, eax
add eax, dword [esp + 0x50]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x28]
adc dword [esp + 0x3c], eax
mov eax, esi
sub eax, dword [esp + 0x4c]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x58]
sbb eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x58]
jb 0x48e7c4
ja 0x48e7bc
cmp dword [esp + 0x60], esi
jbe 0x48e7c4
mov esi, ecx
mov dword [esp + 0x58], ebx
jmp 0x48e7d9
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
mov dword [esp + 0x58], eax
mov eax, edx
sub eax, dword [esp + 0x44]
sbb ebp, dword [esp + 0x1c]
sub eax, esi
sbb ebp, dword [esp + 0x58]
cmp ebp, dword [esp + 0x68]
jb 0x48e7fd
ja 0x48e7f5
cmp eax, edx
jbe 0x48e7fd
mov edx, ecx
mov dword [esp + 0x58], ebx
jmp 0x48e812
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x2c]
xor esi, esi
mov eax, dword [esp + 0x50]
push 8
lea ecx, [ecx + 0x18]
shr ebp, cl
sub eax, edx
mov edx, dword [esp + 0x40]
sbb edx, dword [esp + 0x5c]
pop ecx
sub ecx, dword [esp + 0x2c]
call fcn.00611c30
mov ecx, dword [esp + 0x2c]
or esi, edx
mov edx, dword [esp + 0x18]
or ebp, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], esi
xor esi, esi
lea ecx, [ecx + 0x17]
mov dword [esp + 0x28], ebp
shr dword [esp + 0x14], cl
mov ecx, dword [esp + 0x54]
call fcn.00611c30
or dword [esp + 0x14], eax
xor ecx, ecx
mov eax, dword [esp + 0x70]
or esi, edx
inc ecx
mov dword [esp + 0x2c], esi
cmp eax, ecx
ja 0x48e8a2
mov al, cl
mov byte [esp + 0x11], al
cmp byte [esp + 0x13], bl
je 0x48e88f
mov cl, byte [esp + 0x40]
mov byte [esp + 0x10], cl
jmp 0x48e2f7
add edi, 0xffffffff
mov cl, bl
mov dword [esp + 0x24], edi
adc dword [esp + 0x20], 0xffffffff
jmp 0x48e2f7
cmp eax, 0x3f
jae 0x48e2f3
push dword [esp + 0x34]
lea ecx, [eax - 1]
push dword [esp + 0x60]
call fcn.0048cf44
pop ecx
pop ecx
mov byte [esp + 0x11], al
mov dword [esp + 0x18], ebx
mov byte [esp + 0x12], bl
jmp 0x48e307
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x2c]
push dword [esp + 0x20]
push eax
call fcn.0048cde9
push esi
push dword [esp + 0x34]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
call fcn.0048cde9
mov ecx, edx
mov dword [esp + 0x64], eax
add esp, 0x10
mov dword [esp + 0x50], ecx
cmp dword [esp + 0x40], ecx
jb 0x48e984
ja 0x48e915
cmp dword [esp + 0x3c], eax
jbe 0x48e984
push ebp
push dword [esp + 0x18]
call fcn.0048cde9
push dword [esp + 0x48]
mov esi, dword [esp + 0x5c]
mov ebp, edx
mov edx, dword [esp + 0x20]
push dword [esp + 0x48]
imul ecx, eax, 0xa
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x38], eax
sub edx, ecx
cmp edx, 5
sbb cl, cl
inc cl
inc edi
mov byte [esp + 0x23], cl
call fcn.0048cde9
push esi
push dword [esp + 0x68]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
call fcn.0048cde9
mov ecx, edx
mov dword [esp + 0x6c], eax
add esp, 0x18
mov dword [esp + 0x50], ecx
cmp dword [esp + 0x40], ecx
ja 0x48e915
jb 0x48e980
cmp dword [esp + 0x3c], eax
ja 0x48e915
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x28]
jne 0x48e992
cmp ebp, esi
je 0x48e9ac
cmp byte [esp + 0x13], 0
jne 0x48e9ac
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov ebx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
jmp 0x48e9af
xor edx, edx
inc edx
add edx, eax
adc ebx, ebp
jmp 0x48eb7e
push dword [esp + 0x20]
push dword [esp + 0x28]
call fcn.0048cde9
mov esi, dword [esp + 0x24]
mov ebx, eax
mov ebp, dword [esp + 0x30]
mov edi, edx
push esi
push ebp
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], edi
call fcn.0048cde9
mov ecx, edx
mov dword [esp + 0x64], eax
add esp, 0x10
mov dword [esp + 0x50], edx
cmp edi, ecx
jb 0x48ea9e
ja 0x48e9ff
cmp ebx, eax
jbe 0x48ea9e
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
push edi
push ebx
call fcn.0048cde9
movzx ecx, byte [esp + 0x18]
mov edi, edx
imul edx, dword [esp + 0x5c], 0xa
mov ebx, eax
push dword [esp + 0x54]
mov esi, dword [esp + 0x5c]
xor eax, eax
push dword [esp + 0x54]
mov dword [esp + 0x2c], esi
cmp ebp, edx
mov ebp, dword [esp + 0x64]
cmove eax, ecx
movzx ecx, byte [esp + 0x21]
xor edx, edx
mov byte [esp + 0x20], al
cmp byte [esp + 0x22], dl
movzx eax, bl
cmove edx, ecx
mov cl, byte [esp + 0x24]
imul eax, eax, 0xa
mov byte [esp + 0x21], dl
mov dword [esp + 0x24], ebx
sub cl, al
inc dword [esp + 0x28]
mov byte [esp + 0x22], cl
call fcn.0048cde9
push esi
push ebp
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
call fcn.0048cde9
mov ecx, edx
mov dword [esp + 0x6c], eax
add esp, 0x18
mov dword [esp + 0x50], ecx
cmp dword [esp + 0x4c], ecx
ja 0x48ea07
jb 0x48eaa6
cmp dword [esp + 0x48], eax
ja 0x48ea07
jmp 0x48eaa6
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
mov ch, byte [esp + 0x10]
test ch, ch
je 0x48eb1c
push esi
push ebp
call fcn.0048cde9
pop ecx
pop ecx
imul ecx, eax, 0xa
mov esi, ebp
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], edx
sub esi, ecx
jne 0x48eb22
push edi
push ebx
call fcn.0048cde9
cmp byte [esp + 0x1a], 0
mov edi, edx
sete cl
and byte [esp + 0x19], cl
movzx ecx, al
imul ecx, ecx, 0xa
sub bl, cl
mov ecx, dword [esp + 0x60]
inc dword [esp + 0x20]
mov esi, ecx
mov byte [esp + 0x1a], bl
mov ebx, eax
mov eax, dword [esp + 0x64]
mov ebp, eax
push ecx
push eax
call fcn.0048cde9
mov dword [esp + 0x6c], eax
mov ecx, ebp
imul eax, eax, 0xa
add esp, 0x10
mov dword [esp + 0x58], edx
sub ecx, eax
je 0x48eac8
mov dword [esp + 0x14], ebx
jmp 0x48eb26
mov esi, dword [esp + 0x1c]
jmp 0x48eb2a
mov esi, dword [esp + 0x1c]
mov ch, byte [esp + 0x10]
mov cl, byte [esp + 0x12]
xor edx, edx
cmp byte [esp + 0x11], dl
je 0x48eb4a
cmp cl, 5
jne 0x48eb4a
mov eax, ebx
inc edx
and eax, edx
xor ebx, ebx
or eax, ebx
jne 0x48eb4d
dec cl
jmp 0x48eb4d
xor ebx, ebx
inc edx
mov eax, dword [esp + 0x14]
cmp eax, ebp
jne 0x48eb64
cmp edi, esi
jne 0x48eb64
cmp byte [esp + 0x13], 0
je 0x48eb7a
test ch, ch
je 0x48eb7a
cmp cl, 5
jae 0x48eb7a
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov ebx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
add edx, eax
adc ebx, edi
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x38]
add ecx, dword [esp + 0x18]
pop edi
pop esi
pop ebp
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov dword [eax], edx
pop ebx
add esp, 0x68
ret