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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0xf0
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x9c], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x98], edx
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x78], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x7c], edx
mov edx, dword [ebp + 0x24]
mov dword [esp + 0xa8], eax
mov eax, dword [ebp + 0x28]
mov dword [esp + 0xac], edx
mov edx, dword [ebp + 0x2c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x74], edx
xor edx, edx
and eax, 8
mov dword [esp + 0x68], ecx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x4c], eax
jne 0x4752b7
mov eax, dword [esp + 0x9c]
mov eax, dword [eax + 0x14]
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 0xc], eax
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 4]
mov edx, dword [ebx + 0x6c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00485080
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edx
mov eax, dword [esp + 0x9c]
xor edx, edx
xor ebx, ebx
mov esi, dword [esp + 0x74]
mov ecx, dword [eax + 0x64]
mov eax, 1
shld edx, eax, cl
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0xa0], eax
neg eax
mov dword [esp + 0xa4], edx
adc edx, 0
and ebx, eax
or eax, 0xffffffff
neg edx
and esi, edx
mov edx, eax
shld edx, eax, cl
shl eax, cl
test cl, 0x20
je 0x47530c
mov edx, eax
xor eax, eax
not eax
not edx
mov dword [esp + 0x40], eax
and eax, dword [esp + 0x78]
mov dword [esp + 0x38], eax
mov eax, ebx
or eax, dword [esp + 0x38]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x44], edx
and edx, dword [esp + 0x7c]
neg eax
mov dword [esp + 0x3c], edx
mov edx, esi
or edx, dword [esp + 0x3c]
mov ebx, eax
and eax, 0x8000
mov dword [esp + 0x34], edx
and ebx, 0x7fff
test edi, edi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ebx
setne byte [esp + 0x4b]
test ecx, ecx
je 0x4755ae
cmp byte [esp + 0x4b], 0
je 0x4755ae
mov ecx, dword [edi + 0x10]
mov eax, ebx
test byte [edi + 0x14], 2
jne 0x475383
mov eax, dword [esp + 0x6c]
mov ebx, dword [esp + 0xac]
xor edx, edx
sub eax, ecx
cmp dword [esp + 0xa8], eax
mov esi, edx
sbb ebx, edx
mov ebx, dword [esp + 0xa8]
cmovb esi, dword [esp + 0xac]
cmovae ebx, eax
mov dword [esp + 0x58], ebx
test esi, esi
jne 0x4753bb
test ebx, ebx
je 0x4755c0
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
sub eax, dword [esp + 0x38]
sbb edx, dword [esp + 0x3c]
and edx, dword [esp + 0x44]
and eax, dword [esp + 0x40]
mov dword [esp + 0xa4], edx
cmp dword [esp + 0xa4], 0
mov dword [esp + 0xa0], eax
jne 0x4753ff
cmp dword [esp + 0xa0], 0
je 0x4755d2
mov ebx, dword [esp + 0xa0]
mov eax, esi
cmp dword [esp + 0x58], ebx
sbb eax, dword [esp + 0xa4]
mov eax, dword [esp + 0x58]
cmovae esi, dword [esp + 0xa4]
mov edx, dword [edi + 0xc]
cmovae eax, ebx
cmp dword [esp + 0x4c], 0
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa0], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], eax
jne 0x4754d0
add eax, 0xffffffff
adc edx, 0xffffffff
add eax, ecx
mov ecx, dword [esp + 0x8c]
adc edx, 0
cmp dword [esp + 0x88], eax
sbb ecx, edx
jb 0x4754d0
mov ebx, dword [esp + 0xa0]
mov esi, dword [esp + 0xa4]
add ebx, eax
adc esi, edx
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x44], esi
cmp dword [esp + 0x40], ebx
mov ecx, dword [esp + 0x44]
sbb ecx, dword [esp + 0x8c]
jb 0x4754d0
mov ebx, dword [esp + 0x88]
mov esi, dword [esp + 0x8c]
sub ebx, eax
sbb esi, edx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], esi
cmp dword [esp + 0xa4], 0
jne 0x4754d0
cmp dword [esp + 0xa0], 0
je 0x4755d2
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045fb9f
test eax, eax
jne 0x4755d2
xor ecx, ecx
mov eax, dword [esp + 0xa0]
add dword [edi + 0x10], eax
mov dword [esp + 8], edi
mov dword [esp + 4], ecx
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045fbc6
test eax, eax
jne 0x4769f1
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045fecd
test eax, eax
jne 0x4769f1
test byte [edi + 0x14], 2
jne 0x475580
mov eax, dword [esp + 0xa0]
xor edx, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov edx, dword [edi + 4]
mov eax, dword [edi]
add eax, dword [edi + 0x10]
adc edx, 0
sub eax, dword [esp + 0xa0]
sbb edx, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], edx
mov dword [esp], eax
call fcn.00469910
test eax, eax
jne 0x4769f1
mov ebx, dword [esp + 0xa0]
mov esi, dword [esp + 0xa4]
add dword [esp + 0x78], ebx
adc dword [esp + 0x7c], esi
sub dword [esp + 0xa8], ebx
sbb dword [esp + 0xac], esi
add dword [esp + 0x30], ebx
adc dword [esp + 0x34], esi
jmp 0x4755d2
xor eax, eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
jmp 0x4755d2
mov eax, dword [esp + 0x58]
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa0], eax
cmp dword [ebp + 0x14], 0
je 0x475a47
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 0x64]
test ecx, ecx
je 0x475796
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0x10]
test byte [eax + 0x14], 2
je 0x475600
mov eax, dword [esp + 0x70]
jmp 0x475604
mov eax, dword [esp + 0x6c]
mov ebx, dword [esp + 0xa8]
sub eax, edx
xor edx, edx
mov esi, edx
cmp eax, ebx
mov ebx, edx
sbb ebx, dword [esp + 0xac]
mov ebx, dword [esp + 0xa8]
cmovae esi, dword [esp + 0xac]
cmovb ebx, eax
test esi, esi
jne 0x47563a
test ebx, ebx
je 0x475796
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [esp + 0x58], eax
mov eax, 0xffffffff
mov dword [esp + 0x5c], edx
mov edx, eax
shl eax, cl
test cl, 0x20
je 0x47565d
mov edx, eax
xor eax, eax
not edx
and edx, dword [esp + 0x5c]
not eax
and eax, dword [esp + 0x58]
mov dword [esp + 0xa4], edx
cmp dword [esp + 0xa4], 0
mov dword [esp + 0xa0], eax
jne 0x47568f
cmp dword [esp + 0xa0], 0
je 0x475796
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045fb9f
test eax, eax
jne 0x4769f1
mov ecx, dword [esp + 0xa0]
mov eax, esi
cmp ebx, ecx
sbb eax, dword [esp + 0xa4]
mov eax, ebx
cmovae esi, dword [esp + 0xa4]
cmovae eax, ecx
mov dword [esp + 0xa4], esi
mov esi, dword [ebp + 0x14]
mov dword [esp + 0xa0], eax
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0xa0]
sub dword [esi + 8], eax
sbb dword [esi + 0xc], edx
sub dword [esi], eax
mov eax, dword [esp + 0xa0]
sbb dword [esi + 4], edx
add dword [esi + 0x10], eax
xor eax, eax
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045fbc6
test eax, eax
jne 0x4769f1
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045fecd
test eax, eax
jne 0x4769f1
mov eax, dword [ebp + 0x14]
test byte [eax + 0x14], 2
jne 0x47577a
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], edx
mov dword [esp], eax
call fcn.00469910
test eax, eax
jne 0x4769f1
mov ebx, dword [esp + 0xa0]
mov esi, dword [esp + 0xa4]
sub dword [esp + 0xa8], ebx
sbb dword [esp + 0xac], esi
cmp dword [ebp + 0x14], 0
je 0x475a47
cmp byte [esp + 0x4b], 0
je 0x475a47
mov eax, dword [edi + 0x14]
mov esi, dword [ebp + 0x14]
mov edx, eax
xor edx, dword [esi + 0x14]
and dl, 2
je 0x4757d0
mov ecx, dword [edi + 0x14]
and ecx, 2
je 0x475a54
mov eax, dword [esp + 0x70]
jmp 0x475a66
and eax, 2
test byte [esp + 0x98], 2
je 0x4757e1
test eax, eax
jne 0x4757bb
test byte [esp + 0x98], 4
je 0x4757f1
test eax, eax
jne 0x475803
jmp 0x4757bb
test eax, eax
jne 0x475803
mov edx, dword [esp + 0x98]
not edx
and dl, 3
jne 0x4757bb
mov edx, dword [ebp + 0x14]
xor ecx, ecx
mov edx, dword [edx + 0x10]
add edx, dword [edi + 0x10]
adc ecx, 0
add edx, dword [esp + 0xa8]
adc ecx, dword [esp + 0xac]
test eax, eax
mov dword [esp + 0x58], edx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x70]
cmove ecx, dword [esp + 0x6c]
xor edx, edx
mov eax, edx
cmp ecx, ebx
sbb eax, dword [esp + 0x5c]
jb 0x4757bb
mov eax, dword [edi + 8]
mov edx, dword [edi + 0xc]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045fb9f
test eax, eax
jne 0x4757bb
mov eax, dword [edi]
mov edx, dword [edi + 4]
add eax, dword [edi + 0x10]
mov ecx, eax
lea eax, [esp + 0xb8]
adc edx, 0
xor esi, esi
mov dword [esp + 0x20], eax
lea eax, [esp + 0xb0]
mov ebx, edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], esi
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
add eax, 1
mov dword [esp + 4], 3
adc edx, 0
sub eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x9c]
sbb edx, ebx
mov dword [esp + 0x14], edx
mov dword [esp], eax
call fcn.00459b3c
test eax, eax
jne 0x4757bb
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0xbc]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x38], eax
add ebx, eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x3c], edx
adc esi, edx
cmp esi, dword [eax + 4]
jne 0x4757bb
cmp ebx, dword [eax]
jne 0x4757bb
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x44]
mov dword [esp], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], edx
mov edx, dword [ebp + 8]
call fcn.00475184
test eax, eax
jne 0x4769f1
mov eax, dword [esp + 0x58]
xor ecx, ecx
mov dword [edi + 0x10], eax
mov dword [esp + 8], edi
mov dword [esp + 4], ecx
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045fbc6
test eax, eax
jne 0x4769f1
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045fecd
test eax, eax
jne 0x4769f1
lea eax, [esp + 0xc0]
mov dword [esp + 4], 7
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045f555
test eax, eax
jne 0x4769f1
xor edx, edx
mov dword [esp + 4], edx
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045fc9e
test eax, eax
jne 0x4769f1
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045fecd
test eax, eax
jne 0x4769f1
movups xmm0, xmmword [edi]
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x14]
movups xmmword [eax], xmm0
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
test byte [edi + 0x14], 2
jne 0x4765ab
test byte [esp + 0x98], 1
je 0x4765ab
xor eax, eax
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call fcn.00469910
jmp 0x4769f1
test edi, edi
jne 0x4757bb
jmp 0x475d76
xor eax, eax
xor edx, edx
test byte [esp + 0x98], 1
je 0x475a6b
mov eax, dword [esp + 0x6c]
sub eax, dword [edi + 0x10]
xor edx, edx
test byte [esp + 0x98], 2
je 0x475a7d
test ecx, ecx
jne 0x475d76
test byte [esp + 0x98], 4
je 0x475a8f
test ecx, ecx
je 0x475d76
mov ecx, dword [esp + 0xa8]
mov ebx, dword [esp + 0xa8]
cmp eax, ecx
mov ecx, edx
sbb ecx, dword [esp + 0xac]
mov ecx, dword [esp + 0x8c]
cmovb ebx, eax
mov eax, edx
cmovae eax, dword [esp + 0xac]
mov edx, dword [edi + 0xc]
mov dword [esp + 0x84], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x80], ebx
add eax, 0xffffffff
adc edx, 0xffffffff
add eax, dword [edi + 0x10]
adc edx, 0
cmp dword [esp + 0x88], eax
sbb ecx, edx
jb 0x475b34
cmp dword [esp + 0x4c], 0
jne 0x475b34
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x84]
mov ecx, dword [esp + 0x88]
add ebx, eax
adc esi, edx
cmp ebx, ecx
mov ebx, esi
sbb ebx, dword [esp + 0x8c]
jb 0x475b34
mov ebx, dword [esp + 0x88]
mov esi, dword [esp + 0x8c]
sub ebx, eax
sbb esi, edx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], esi
cmp dword [esp + 0x84], 0
jne 0x475b4c
cmp dword [esp + 0x80], 0
je 0x475d76
mov ecx, dword [esp + 0x9c]
cmp dword [ecx + 0x64], 0
je 0x475bff
add eax, dword [esp + 0x80]
adc edx, dword [esp + 0x84]
mov ebx, eax
lea eax, [esp + 0xb0]
mov dword [esp + 0x10], edx
mov esi, edx
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ebx
mov eax, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
call fcn.00471c58
test eax, eax
jne 0x4769f1
cmp dword [esp + 0xb4], 0
jne 0x475bb5
cmp dword [esp + 0xb0], 0
je 0x475bff
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 0x64]
mov eax, 0xffffffff
mov edx, eax
shl eax, cl
test cl, 0x20
je 0x475bd1
mov edx, eax
xor eax, eax
not ebx
not esi
or edx, esi
or eax, ebx
add dword [esp + 0x80], eax
adc dword [esp + 0x84], edx
cmp dword [esp + 0x84], 0
jne 0x475bff
cmp dword [esp + 0x80], 0
je 0x475d76
lea eax, [esp + 0xb8]
mov edx, dword [esp + 0x84]
mov dword [esp + 0x20], eax
lea eax, [esp + 0xb0]
mov dword [esp + 0x1c], eax
xor eax, eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
mov eax, dword [edi]
mov edx, dword [edi + 4]
add eax, dword [edi + 0x10]
mov dword [esp + 4], 3
mov dword [esp + 8], eax
mov eax, dword [esp + 0x9c]
adc edx, 0
mov dword [esp + 0xc], edx
mov dword [esp], eax
call fcn.00459b3c
test eax, eax
jne 0x475d76
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0xbc]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xb4]
mov dword [esp], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], edx
mov edx, dword [ebp + 8]
call fcn.00475184
test eax, eax
jne 0x4769f1
mov eax, dword [edi + 8]
mov edx, dword [edi + 0xc]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045fb9f
test eax, eax
jne 0x4769f1
mov eax, dword [esp + 0xb8]
add dword [edi + 0x10], eax
mov dword [esp + 8], edi
mov edx, dword [esp + 0xbc]
mov ebx, eax
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov esi, edx
mov dword [esp], eax
call fcn.0045fbc6
test eax, eax
jne 0x4769f1
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045fecd
test eax, eax
jne 0x4769f1
test byte [edi + 0x14], 2
jne 0x475d1b
test byte [esp + 0x98], 1
jne 0x475d33
add dword [esp + 0x78], ebx
adc dword [esp + 0x7c], esi
sub dword [esp + 0xa8], ebx
sbb dword [esp + 0xac], esi
jmp 0x475d76
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0xb4]
xor edi, edi
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x10], edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], edx
mov dword [esp], eax
call fcn.00469910
test eax, eax
je 0x475d1b
jmp 0x4769f1
cmp dword [ebp + 0x14], 0
je 0x4760e7
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x14]
and ecx, 2
je 0x475d91
mov eax, dword [esp + 0x70]
jmp 0x475da3
xor eax, eax
xor edx, edx
test byte [esp + 0x98], 1
je 0x475dab
mov eax, dword [esp + 0x6c]
mov edi, dword [ebp + 0x14]
xor edx, edx
sub eax, dword [edi + 0x10]
test byte [esp + 0x98], 2
je 0x475dbd
test ecx, ecx
jne 0x4760e7
test byte [esp + 0x98], 4
je 0x475dcf
test ecx, ecx
je 0x4760e7
mov edi, dword [esp + 0xa8]
cmp eax, edi
mov edi, edx
sbb edi, dword [esp + 0xac]
mov edi, dword [esp + 0xa8]
cmovb edi, eax
mov eax, edx
cmovae eax, dword [esp + 0xac]
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], eax
test eax, eax
jne 0x475e0f
test edi, edi
je 0x4760e7
mov eax, dword [esp + 0x9c]
cmp dword [eax + 0x64], 0
je 0x475f12
lea eax, [esp + 0xb0]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
sub eax, dword [esp + 0x90]
sbb edx, dword [esp + 0x94]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov eax, dword [ebp + 8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call fcn.00471c58
test eax, eax
jne 0x4769f1
cmp dword [esp + 0xb4], 0
jne 0x475e88
cmp dword [esp + 0xb0], 0
je 0x475f12
mov eax, dword [esp + 0x9c]
mov esi, 0xffffffff
mov edi, esi
mov ecx, dword [eax + 0x64]
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
sub eax, dword [esp + 0x90]
sbb edx, dword [esp + 0x94]
shl esi, cl
xor ebx, ebx
test cl, 0x20
cmovne edi, esi
cmovne esi, ebx
mov ebx, dword [esp + 0x94]
not edi
not esi
and edx, edi
mov edi, ecx
and eax, esi
shr edi, 5
and edi, 1
mov esi, edi
shl edi, cl
xor esi, 1
shl esi, cl
mov ecx, dword [esp + 0x90]
sub ecx, esi
sbb ebx, edi
add eax, ecx
adc edx, ebx
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
cmp dword [esp + 0x94], 0
jne 0x475f12
cmp dword [esp + 0x90], 0
je 0x4760e7
lea eax, [esp + 0xb8]
mov edx, dword [esp + 0x94]
xor edi, edi
mov dword [esp + 0x20], eax
lea eax, [esp + 0xb0]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x18], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 4], 3
sub eax, dword [esp + 0x90]
sbb edx, dword [esp + 0x94]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xc], edx
mov dword [esp], eax
call fcn.00459b3c
test eax, eax
jne 0x4760e7
mov eax, dword [esp + 0x9c]
xor ebx, ebx
mov ecx, dword [eax + 0x64]
mov eax, 0xffffffff
mov edx, eax
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, ebx
not edx
not eax
and edx, dword [esp + 0xb4]
and eax, dword [esp + 0xb0]
add eax, dword [esp + 0xb8]
adc edx, dword [esp + 0xbc]
xor esi, esi
mov dword [esp + 8], eax
mov eax, 0xffffffff
mov dword [esp + 0xc], edx
mov edx, eax
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, esi
and edx, dword [esp + 0xb4]
and eax, dword [esp + 0xb0]
mov dword [esp], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], edx
mov edx, dword [ebp + 8]
call fcn.00475184
test eax, eax
jne 0x4769f1
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045fb9f
test eax, eax
jne 0x4769f1
mov eax, dword [ebp + 0x14]
mov esi, dword [esp + 0xb8]
mov edi, dword [esp + 0xbc]
sub dword [eax + 8], esi
sbb dword [eax + 0xc], edi
sub dword [eax], esi
sbb dword [eax + 4], edi
add dword [eax + 0x10], esi
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045fbc6
test eax, eax
jne 0x4769f1
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045fecd
test eax, eax
jne 0x4769f1
mov eax, dword [ebp + 0x14]
test byte [eax + 0x14], 2
jne 0x47608d
test byte [esp + 0x98], 1
jne 0x47609d
sub dword [esp + 0xa8], esi
sbb dword [esp + 0xac], edi
jmp 0x4760e7
xor eax, eax
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xa0]
add eax, dword [esp + 0xb8]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call fcn.00469910
test eax, eax
je 0x47608d
jmp 0x4769f1
cmp dword [esp + 0xac], 0
jne 0x4760ff
cmp dword [esp + 0xa8], 0
je 0x4765ab
mov eax, dword [esp + 0x9c]
xor ebx, ebx
mov ecx, dword [eax + 0x64]
mov eax, 0xffffffff
mov edx, eax
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, ebx
not edx
not eax
mov esi, eax
mov dword [esp + 0xa0], eax
mov edi, edx
and esi, dword [esp + 0x78]
mov dword [esp + 0xa4], edx
and edi, dword [esp + 0x7c]
jne 0x476145
test esi, esi
je 0x476395
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x88], ecx
mov dword [esp + 0xc8], eax
lea eax, [esp + 0xb0]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0xcc], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov eax, dword [ebp + 8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call fcn.00471c58
test eax, eax
jne 0x4769f1
mov ebx, dword [esp + 0xb4]
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x88]
test ebx, ebx
mov dword [esp + 0x90], eax
jne 0x4761cb
test eax, eax
je 0x476395
xor eax, eax
xor edx, edx
test cl, 0x20
mov dword [esp + 0xc4], ebx
sete al
setne dl
shl eax, cl
shl edx, cl
sub eax, esi
sbb edx, edi
mov edi, dword [esp + 0xac]
and edx, dword [esp + 0xa4]
and eax, dword [esp + 0xa0]
cmp dword [esp + 0xa8], eax
sbb edi, edx
mov edi, dword [esp + 0xa8]
cmovae edi, eax
mov eax, edx
cmovb eax, dword [esp + 0xac]
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 8], edx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x60], edi
not eax
mov dword [esp + 0xd0], edi
and eax, 2
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045fb9f
lea eax, [esp + 0xd8]
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045f555
cmp eax, 0x7f2bb780
jne 0x47629f
xor eax, eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
jmp 0x4762a7
test eax, eax
jne 0x4769f1
lea eax, [esp + 0xc0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xe0]
cmp dword [esp + 0xc8], eax
mov eax, dword [esp + 0xcc]
sbb eax, dword [esp + 0xe4]
setae al
movzx eax, al
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.00460615
test eax, eax
jne 0x4769f1
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045fecd
test eax, eax
jne 0x4769f1
test byte [esp + 0xd4], 2
je 0x476338
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
sub dword [esp + 0xa8], ebx
sbb dword [esp + 0xac], esi
cmp dword [esp + 0xac], 0
jne 0x476385
cmp dword [esp + 0xa8], 0
je 0x4765ab
jmp 0x476385
test byte [esp + 0x98], 1
je 0x476308
mov eax, dword [esp + 0xd0]
mov edx, dword [esp + 0xc4]
xor edi, edi
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x10], edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], edx
mov dword [esp], eax
call fcn.00469910
test eax, eax
je 0x476308
jmp 0x4769f1
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
add dword [esp + 0x78], ebx
adc dword [esp + 0x7c], esi
mov eax, dword [esp + 0x78]
add eax, dword [esp + 0xa8]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x7c]
adc edx, dword [esp + 0xac]
xor esi, esi
mov ecx, dword [eax + 0x64]
mov eax, 0xffffffff
mov dword [esp + 0xa4], edx
mov edx, eax
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, esi
not edx
not eax
and eax, dword [esp + 0xa0]
and edx, dword [esp + 0xa4]
mov esi, eax
mov edi, edx
je 0x4765b2
mov eax, 0xffffffff
xor ebx, ebx
mov edx, eax
shl eax, cl
test cl, 0x20
lea ecx, [esp + 0xb0]
cmovne edx, eax
cmovne eax, ebx
and edx, dword [esp + 0xa4]
mov dword [esp + 0x14], ecx
and eax, dword [esp + 0xa0]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc8], eax
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0xcc], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call fcn.00471c58
test eax, eax
jne 0x4769f1
mov eax, dword [esp + 0xb4]
mov edx, dword [esp + 0xb0]
test eax, eax
je 0x4765bb
mov ebx, dword [esp + 0xac]
mov dword [esp + 0xc4], eax
cmp dword [esp + 0xa8], esi
mov eax, dword [esp + 0x98]
mov dword [esp + 0xc0], edx
sbb ebx, edi
mov ebx, dword [esp + 0xa8]
mov edx, dword [esp + 0xcc]
not eax
cmovb edi, dword [esp + 0xac]
cmovae ebx, esi
and eax, 2
mov dword [esp + 8], edx
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x50], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x54], edi
mov dword [esp], eax
mov dword [esp + 0xd0], ebx
call fcn.0045fb9f
lea eax, [esp + 0xd8]
xor edx, edx
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045f555
cmp eax, 0x7f2bb780
jne 0x4765c5
xor eax, eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
lea eax, [esp + 0xc0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xe0]
cmp dword [esp + 0xc8], eax
mov eax, dword [esp + 0xcc]
sbb eax, dword [esp + 0xe4]
setae al
movzx eax, al
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.00460615
test eax, eax
jne 0x4769f1
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045fecd
test eax, eax
jne 0x4769f1
test byte [esp + 0xd4], 2
je 0x4765d2
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x54]
sub dword [esp + 0xa8], ebx
sbb dword [esp + 0xac], esi
cmp dword [esp + 0xac], 0
jne 0x476623
cmp dword [esp + 0xa8], 0
jne 0x476623
xor eax, eax
jmp 0x4769f1
test eax, eax
je 0x476623
jmp 0x4763f3
test edx, edx
jne 0x476472
jmp 0x476623
test eax, eax
je 0x47651c
jmp 0x4769f1
test byte [esp + 0x98], 1
je 0x47657d
xor eax, eax
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call fcn.00469910
test eax, eax
je 0x47657d
jmp 0x4769f1
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x6c]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0xcc], edx
mov edx, dword [esp + 0x34]
and eax, 2
cmove edi, dword [esp + 0x70]
cmp eax, 1
mov dword [esp + 0xb4], edx
mov edx, dword [esp + 0xac]
sbb eax, eax
mov dword [esp + 0x70], edi
and eax, 2
mov dword [esp + 0x84], edx
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x90], edi
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x80], eax
xor eax, eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
xor eax, eax
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x9c]
xor ebx, ebx
mov ecx, dword [eax + 0x64]
mov eax, 0xffffffff
mov edx, eax
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, ebx
not eax
and eax, dword [esp + 0xc8]
not edx
and edx, dword [esp + 0xcc]
mov esi, eax
lea eax, [esp + 0xb8]
mov edi, edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x20], eax
lea eax, [esp + 0xb0]
mov dword [esp + 0x1c], eax
xor eax, eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x80]
add eax, esi
adc edx, edi
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xa4], edx
cmp dword [esp + 0x90], eax
mov eax, dword [esp + 0x94]
sbb eax, dword [esp + 0xa4]
mov eax, dword [esp + 0x90]
cmovae eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
cmovb edx, dword [esp + 0x94]
xor ebx, ebx
mov dword [esp + 0x10], eax
mov eax, 0xffffffff
mov dword [esp + 0x14], edx
mov edx, eax
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, ebx
and eax, dword [esp + 0xb0]
and edx, dword [esp + 0xb4]
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xc], edx
mov dword [esp], eax
call fcn.00459b3c
test eax, eax
jne 0x4769f1
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0xbc]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xb4]
mov dword [esp], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], edx
mov edx, dword [ebp + 8]
call fcn.00475184
test eax, eax
jne 0x4769f1
mov eax, esi
add eax, dword [esp + 0xb0]
mov edx, edi
adc edx, dword [esp + 0xb4]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xc4], edx
mov edx, dword [esp + 0xcc]
sub eax, esi
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045fb9f
lea eax, [esp + 0xd8]
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045f555
cmp eax, 0x7f2bb780
jne 0x476872
xor eax, eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
jmp 0x47687a
test eax, eax
jne 0x4769f1
lea eax, [esp + 0xc0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xe0]
cmp dword [esp + 0xc8], eax
mov eax, dword [esp + 0xcc]
sbb eax, dword [esp + 0xe4]
setae al
movzx eax, al
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.00460615
test eax, eax
jne 0x4769f1
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0045fecd
test eax, eax
jne 0x4769f1
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
test byte [esp + 0xd4], 2
je 0x47698d
mov ecx, dword [esp + 0xb8]
mov ebx, dword [esp + 0xbc]
mov eax, ecx
mov edx, ebx
sub eax, esi
sbb edx, edi
add dword [esp + 0x88], eax
adc dword [esp + 0x8c], edx
sub esi, ecx
sbb edi, ebx
add dword [esp + 0x80], esi
adc dword [esp + 0x84], edi
add dword [esp + 0xc8], eax
adc dword [esp + 0xcc], edx
add dword [esp + 0xb0], eax
mov eax, dword [esp + 0x9c]
adc dword [esp + 0xb4], edx
mov eax, dword [eax + 0x10]
mov dword [esp], eax
call fcn.0045b976
mov ecx, eax
mov eax, edx
mov edx, dword [esp + 0xb4]
cmp dword [esp + 0xb0], ecx
sbb edx, eax
jb 0x4769ca
mov eax, dword [esp + 0x9c]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [esp + 0xb0], eax
xor eax, eax
mov dword [esp + 0xb4], eax
jmp 0x4769ca
test byte [esp + 0x98], 1
je 0x4768f4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
xor ebx, ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp], eax
call fcn.00469910
test eax, eax
je 0x4768f4
jmp 0x4769f1
mov eax, dword [esp + 0xa8]
cmp dword [esp + 0x88], eax
mov eax, dword [esp + 0x8c]
sbb eax, dword [esp + 0xac]
jb 0x4766b1
jmp 0x4765ab
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret