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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x240
lea eax, [ebp + 8]
lea esi, [esp + 0xc0]
mov byte [esp + 0xd], 0
mov dword [esp + 0x44], eax
lea eax, [ebp + 0x20]
mov dword [esp + 0x30], esi
mov ecx, esi
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x30]
push 1
call fcn.0047bc40
mov ecx, dword [esp + 0x48]
call fcn.00474ae0
mov ecx, esi
push 0x40
push 0x25
push eax
call fcn.00497a20
lea esi, [esp + 0x178]
mov dword [esp + 0x1c], esi
mov ecx, esi
mov eax, dword [esp + 0x1c]
push 1
call fcn.0047c8c0
mov ecx, dword [esp + 0x44]
call fcn.00474ae0
mov ecx, esi
push 0x40
push 0x27
push eax
call fcn.004991c0
mov eax, dword [esp + 0x30]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x7c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
add eax, dword [esp + 0x30]
mov dword [esp + 0x40], ecx
mov dword [esp + 0xbc], eax
mov eax, 0x44c53e18
jmp 0x475a90
mov eax, dword [0x517b98]
mov ecx, dword [0x517b9c]
mov esi, 0xe3ca025d
mov edi, 0x4a53b1aa
lea edx, [eax - 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
cmovne esi, edi
test eax, edx
mov eax, esi
cmove eax, edi
cmp ecx, 0xa
cmovge eax, esi
cmp eax, 0xb68ff6f
jg 0x475bd0
cmp eax, 0xcca3e6cd
jg 0x475c20
cmp eax, 0x942a6bf8
jg 0x475d21
cmp eax, 0x89c843a2
jle 0x475f41
cmp eax, 0x89c843a3
je 0x475a53
cmp eax, 0x8adcca71
je 0x47624e
cmp eax, 0x8f8b2dc5
jne 0x475a90
mov eax, dword [0x517af8]
mov edx, dword [0x517afc]
mov esi, 0x3d9586fc
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0x680a7e9
cmovne ebx, esi
test eax, ecx
mov eax, dword [esp + 0x1c]
mov edi, ebx
cmove edi, esi
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x1c]
sete byte [esp + 0xc]
cmp edx, 0xa
mov edx, 0x8fdae77
cmovge edi, ebx
setl byte [esp + 0xb]
nop word cs:[eax + eax]
nop dword [eax]
cmp edx, 0x3d9586fb
jg 0x475b90
cmp edx, 0x680a7e9
je 0x475bbd
cmp edx, 0x8fdae77
jne 0x475b40
movzx ebx, byte [esp + 0xc]
movzx edx, byte [esp + 0xb]
mov esi, 0x680a7e9
mov eax, 0x57205429
mov dh, bl
xor dh, dl
cmovne esi, eax
test dl, dl
mov edx, esi
cmovne edx, eax
test bl, bl
cmove edx, esi
jmp 0x475b40
cmp edx, 0x3d9586fc
je 0x47626e
cmp edx, 0x57205429
jne 0x475b40
mov eax, dword [esp + 0x34]
mov edx, dword [ecx + eax + 0xc]
not edx
or edx, 0xfffffff9
cmp edx, 0xffffffff
mov edx, edi
setne byte [esp + 0x50]
jmp 0x475b40
mov edx, 0x57205429
jmp 0x475b40
cmp eax, 0x50818ea1
jg 0x475cd0
cmp eax, 0x3d906a7a
jg 0x475d5f
cmp eax, 0x18853030
jle 0x475fa9
cmp eax, 0x18853031
je 0x47627d
cmp eax, 0x2414466c
je 0x47623b
cmp eax, 0x3376194a
jne 0x475a90
mov eax, 0x942a6bf9
jmp 0x475a90
cmp eax, 0xf5bd93a4
jg 0x475ec3
cmp eax, 0xe3ca025c
jle 0x476003
cmp eax, 0xe3ca025d
je 0x4762bb
cmp eax, 0xe58b8fd2
je 0x4763a7
cmp eax, 0xea2879e8
jne 0x475a90
mov eax, dword [0x517b98]
mov ecx, dword [0x517b9c]
mov esi, 0xb68ff70
mov edi, 0xf5f7931c
lea edx, [eax - 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
cmovne esi, edi
test eax, edx
mov eax, esi
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmovge eax, esi
add ecx, 0x50
adc edx, 0
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov esi, dword [esp + 0x20]
cmp esi, edx
mov esi, dword [esp + 0x24]
sbb esi, ecx
setb byte [esp + 0x2c]
jmp 0x475a90
cmp eax, 0x6239571a
jg 0x475f09
cmp eax, 0x52ad4759
jle 0x47604e
cmp eax, 0x52ad475a
je 0x4763eb
cmp eax, 0x5706f8c9
je 0x476461
cmp eax, 0x605d6c7e
jne 0x475a90
mov eax, dword [0x517b98]
mov ecx, dword [0x517b9c]
mov esi, 0xa309a2dc
mov edi, 0xcd6eb5b5
jmp 0x475a68
cmp eax, 0xa9ccb221
jle 0x4760bb
cmp eax, 0xa9ccb222
je 0x47623b
cmp eax, 0xb7d855c9
je 0x4765f6
cmp eax, 0xc70bc7a4
jne 0x475a90
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov eax, 0x508f3251
jmp 0x475a90
cmp eax, 0x49741caf
jle 0x4760ea
cmp eax, 0x49741cb0
je 0x47660d
cmp eax, 0x4a53b1aa
je 0x476634
cmp eax, 0x5058153c
jne 0x475a90
lea eax, [esp + 0xc0]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x50]
mov ecx, dword [esp + 0x38]
push eax
call fcn.0047c660
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
xorps xmm0, xmm0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
movaps xmmword [esp + 0x80], xmm0
sub eax, 0x190e0451
sbb ecx, 0x95c5c24c
add eax, dword [esp + 0x50]
adc ecx, dword [esp + 0x54]
add eax, 0x190e0451
mov dword [esp + 0x10], eax
adc ecx, 0x95c5c24c
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x38]
sub esp, 0x18
movsd xmm0, qword [esp + 0xa8]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x98]
movsd xmm1, qword [esp + 0xa0]
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
call fcn.0047be30
mov eax, dword [esp + 0x1c]
mov ecx, dword [0x517ccc]
add eax, 0x10
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x4c], eax
mov eax, dword [0x517cc8]
mov dword [esp + 0x98], eax
lea eax, [esp + 0xa0]
mov dword [eax + 0xc], 0
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov ecx, dword [esp + 0x4c]
sub esp, 0x18
movsd xmm0, qword [esp + 0xc0]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0xb0]
movsd xmm1, qword [esp + 0xb8]
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
call fcn.0047ce20
mov eax, dword [0x517b98]
mov ecx, dword [0x517b9c]
mov esi, 0x889709f4
mov edi, 0x1565dd8
jmp 0x475a68
cmp eax, 0xf8c50eb0
jle 0x4761de
cmp eax, 0xf8c50eb1
je 0x476718
cmp eax, 0xfa0c9bd9
je 0x476732
cmp eax, 0x1565dd8
jne 0x475a90
mov dword [esp + 0x78], 0
mov eax, 0x88edc217
mov dword [esp + 0x74], 0
jmp 0x475a90
cmp eax, 0x7bcad2e9
jle 0x47620b
cmp eax, 0x7bcad2ea
je 0x476d11
cmp eax, 0x7f9b7713
jne 0x475a90
cmp byte [esp + 0x2e], 0
mov eax, 0xfffcb52
mov ecx, 0xa9ccb222
cmovne eax, ecx
jmp 0x475a90
cmp eax, 0x889709f4
je 0x4768c1
cmp eax, 0x88edc217
jne 0x475a90
mov eax, dword [0x517b98]
mov ecx, dword [0x517b9c]
mov esi, 0xb68ff70
mov edi, 0xea2879e8
lea edx, [eax - 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
cmovne esi, edi
test eax, edx
mov edx, dword [esp + 0x74]
mov eax, esi
cmove eax, edi
cmp ecx, 0xa
cmovge eax, esi
mov esi, dword [esp + 0x78]
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], esi
jmp 0x475a90
cmp eax, 0xb68ff70
je 0x4769ab
cmp eax, 0xfffcb52
jne 0x475a90
movzx eax, byte [esp + 0xd]
push dword [esp + 0x24]
push dword [esp + 0x24]
push eax
call fcn.00477680
add esp, 0xc
mov byte [esp + 0xe], al
mov al, byte [esp + 0xe]
mov byte [esp + 0xd], al
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
cmp eax, 0x6af41
mov eax, 0xf8c50eb1
sbb ecx, 0
mov ecx, 0x605d6c7e
cmovb eax, ecx
jmp 0x475a90
cmp eax, 0xcca3e6ce
je 0x476a25
cmp eax, 0xcd6eb5b5
jne 0x475a90
mov ecx, dword [esp + 0x4c]
movsx eax, byte [esp + 0xe]
push eax
call fcn.0047d2a0
mov eax, dword [0x517b98]
mov esi, 0x50818ea2
mov edi, 0xa309a2dc
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0xa309a2dc
jmp 0x476a46
cmp eax, 0x50818ea2
je 0x476a63
cmp eax, 0x508f3251
jne 0x475a90
mov eax, dword [0x517b98]
mov ecx, dword [0x517b9c]
mov esi, 0xc70bc7a4
mov edi, 0xb7d855c9
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete al
cmp ecx, 0xa
setl ah
xor ah, al
cmovne esi, edi
cmp edx, 0xffffffff
mov eax, esi
cmove eax, edi
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
cmp ecx, 0xa
cmovge eax, esi
cmp edi, 0x20
sbb edx, 0
setb byte [esp + 0x2d]
jmp 0x475a90
cmp eax, 0x942a6bf9
je 0x476a6d
cmp eax, 0xa309a2dc
jne 0x475a90
mov ecx, dword [esp + 0x4c]
movsx eax, byte [esp + 0xe]
push eax
call fcn.0047d2a0
mov eax, 0xcd6eb5b5
jmp 0x475a90
cmp eax, 0x3d906a7b
je 0x476a9f
cmp eax, 0x44c53e18
jne 0x475a90
mov eax, dword [esp + 0xbc]
mov ecx, dword [0x517af8]
mov edi, dword [0x517afc]
mov esi, 0x3d9586fc
lea edx, [ecx - 1]
imul edx, ecx
mov ecx, 0x680a7e9
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
sete byte [esp + 0xc]
cmove ecx, esi
cmp edi, 0xa
mov edi, 0x680a7e9
setl dh
setl byte [esp + 0xb]
cmovge ecx, edi
xor dh, dl
mov edx, 0x8fdae77
cmovne ecx, esi
nop word cs:[eax + eax]
nop dword [eax]
cmp edx, 0x3d9586fb
jg 0x4761b0
cmp edx, 0x680a7e9
je 0x4761d7
cmp edx, 0x8fdae77
jne 0x476160
movzx ebx, byte [esp + 0xc]
movzx edx, byte [esp + 0xb]
mov edi, 0x680a7e9
mov esi, 0x57205429
mov dh, bl
xor dh, dl
cmovne edi, esi
test dl, dl
mov edx, edi
cmovne edx, esi
test bl, bl
cmove edx, edi
jmp 0x476160
cmp edx, 0x3d9586fc
je 0x476ab1
cmp edx, 0x57205429
jne 0x476160
mov edx, dword [eax + 0xc]
mov edi, edx
xor edi, 0xfffffff9
test edi, edx
mov edx, ecx
setne byte [esp + 0x50]
jmp 0x476160
mov edx, 0x57205429
jmp 0x476160
cmp eax, 0xf5bd93a5
je 0x476ac8
cmp eax, 0xf5f7931c
jne 0x475a90
cmp byte [esp + 0x2c], 0
mov eax, 0x3376194a
mov ecx, 0xcca3e6ce
cmovne eax, ecx
jmp 0x475a90
cmp eax, 0x6239571b
je 0x476b15
cmp eax, 0x7534fa6c
jne 0x475a90
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov eax, 0x52ad475a
jmp 0x475a90
call fcn.004d14e2
mov byte [esp + 0xd], al
mov eax, 0xfffcb52
jmp 0x475a90
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x74], eax
mov eax, 0x88edc217
jmp 0x475a90
cmp byte [esp + 0x50], 0
mov eax, 0x49741cb0
jmp 0x476abb
mov eax, dword [0x517b98]
mov edi, 0xe58b8fd2
mov esi, 0x6239571b
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0x6239571b
sete cl
cmove eax, edi
cmp dword [0x517b9c], 0xa
setl dl
cmovge eax, esi
xor dl, cl
cmovne eax, edi
jmp 0x475a90
mov ecx, dword [esp + 0x38]
push 0
push 1
lea eax, [esp + 0x15]
push eax
call fcn.0047c1d0
mov ecx, dword [0x517af8]
mov esi, dword [0x517afc]
mov edi, 0x680a7e9
mov dword [esp + 0x34], eax
lea edx, [ecx - 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete bl
cmp esi, 0xa
setl bh
xor bh, bl
mov ebx, 0x3d9586fc
cmovne edi, ebx
test ecx, edx
mov edx, dword [eax]
mov eax, dword [edx + 4]
mov edx, edi
sete byte [esp + 0xc]
cmove edx, ebx
cmp esi, 0xa
cmovge edx, edi
mov edi, 0x8fdae77
setl byte [esp + 0xb]
mov dword [esp + 0x3c], eax
nop word [eax + eax]
cmp edi, 0x3d9586fb
jg 0x476370
cmp edi, 0x680a7e9
je 0x4763a0
cmp edi, 0x8fdae77
jne 0x476330
movzx ecx, byte [esp + 0xc]
mov bh, byte [esp + 0xb]
mov esi, 0x680a7e9
mov eax, 0x57205429
mov bl, cl
xor bl, bh
cmovne esi, eax
test bh, bh
mov edi, esi
cmovne edi, eax
test cl, cl
cmove edi, esi
jmp 0x476330
cmp edi, 0x3d9586fc
je 0x476b27
cmp edi, 0x57205429
jne 0x476330
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov edi, edx
mov ecx, dword [eax + ecx + 0xc]
mov esi, ecx
xor esi, 0xfffffff9
test esi, ecx
setne byte [esp + 0x50]
jmp 0x476330
mov edi, 0x57205429
jmp 0x476330
mov eax, dword [esp + 0x1c]
mov esi, 0x3d906a7b
mov edi, 0x6239571b
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + eax + 0xc]
not eax
or eax, 0xfffffff9
cmp eax, 0xffffffff
mov eax, dword [0x517b98]
sete byte [esp + 0x2f]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0x6239571b
jmp 0x476a46
mov eax, dword [0x517b98]
mov ecx, dword [0x517b9c]
mov esi, 0x7534fa6c
mov edi, 0x8adcca71
lea edx, [eax - 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
cmovne esi, edi
test eax, edx
mov eax, esi
cmove eax, edi
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
cmp ecx, 0xa
cmovge eax, esi
sub edi, 0x69559885
sbb edx, 0x8dc84905
add edi, 1
adc edx, 0
add edi, 0x69559885
adc edx, 0x8dc84905
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], edx
jmp 0x475a90
mov al, byte [esp + 0xf]
lea ecx, [esp + 0x178]
call fcn.0047d5c0
lea ecx, [esp + 0xc0]
call fcn.00479bc0
mov eax, dword [esp + 0x178]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x178], 0x5021a0
mov eax, dword [esp + 0x178]
mov eax, dword [eax + 4]
lea ecx, [eax - 0x78]
mov dword [esp + eax + 0x174], ecx
lea ecx, [esp + 0x190]
call fcn.0047db70
lea ecx, [esp + 0x198]
call fcn.0048eb40
lea eax, [esp + 0x1f0]
mov dword [esp + 0x1f0], 0x50213c
push eax
call fcn.0049e05c
add esp, 4
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0xc0], 0x502140
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + 4]
lea ecx, [eax - 0x70]
mov dword [esp + eax + 0xbc], ecx
lea ecx, [esp + 0xd0]
call fcn.0047db70
lea eax, [esp + 0x130]
mov dword [esp + 0x130], 0x50213c
push eax
call fcn.0049e05c
add esp, 4
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
call fcn.004011f0
mov eax, dword [0x517d2c]
mov ecx, dword [0x517d30]
mov esi, 0xe9e3b4d0
mov edi, 0x1c08b87
lea edx, [eax - 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
cmovne esi, edi
test edx, eax
mov eax, esi
sete byte [esp + 0xb]
cmove eax, edi
cmp ecx, 0xa
mov ecx, 0xe4f57ea6
cmovge eax, esi
setl byte [esp + 0x50]
nop word cs:[eax + eax]
cmp ecx, 0x1c08b86
jg 0x4765b0
cmp ecx, 0xe4f57ea6
je 0x4765c8
cmp ecx, 0xe9e3b4d0
jne 0x476590
mov ecx, 0x2b2d5b0d
jmp 0x476590
cmp ecx, 0x1c08b87
je 0x476b35
cmp ecx, 0x2b2d5b0d
jne 0x476590
mov ecx, eax
jmp 0x476590
movzx edx, byte [esp + 0xb]
movzx ecx, byte [esp + 0x50]
mov edi, 0x2b2d5b0d
mov esi, 0xe9e3b4d0
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0xe9e3b4d0
cmovne ecx, edi
test dl, dl
cmove ecx, esi
test dh, dh
cmovne ecx, edi
jmp 0x476590
cmp byte [esp + 0x2d], 0
mov eax, 0x89c843a3
mov ecx, 0x2414466c
cmovne eax, ecx
jmp 0x475a90
mov eax, dword [0x517b98]
mov esi, 0x5058153c
mov edi, 0x889709f4
lea ecx, [eax - 1]
imul ecx, eax
mov eax, 0x889709f4
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
jmp 0x476a46
mov ecx, dword [esp + 0x38]
push 0
push 1
lea eax, [esp + 0x15]
push eax
call fcn.0047c1d0
mov edx, dword [0x517af8]
mov ecx, dword [eax]
mov edi, dword [0x517afc]
mov dword [esp + 0x34], eax
lea esi, [edx - 1]
mov eax, dword [ecx + 4]
mov ecx, 0x3d9586fc
imul esi, edx
mov edx, 0x680a7e9
not esi
or esi, 0xfffffffe
cmp esi, 0xffffffff
mov esi, 0x680a7e9
mov dword [esp + 0x3c], eax
sete bl
sete byte [esp + 0xc]
cmove edx, ecx
cmp edi, 0xa
mov edi, 0x8fdae77
setl bh
setl byte [esp + 0xb]
cmovge edx, esi
xor bh, bl
cmovne edx, ecx
nop
cmp edi, 0x3d9586fb
jg 0x4766e0
cmp edi, 0x680a7e9
je 0x476711
cmp edi, 0x8fdae77
jne 0x4766a0
movzx ecx, byte [esp + 0xc]
mov bh, byte [esp + 0xb]
mov esi, 0x680a7e9
mov eax, 0x57205429
mov bl, cl
xor bl, bh
cmovne esi, eax
test bh, bh
mov edi, esi
cmovne edi, eax
test cl, cl
cmove edi, esi
jmp 0x4766a0
cmp edi, 0x3d9586fc
je 0x476bf1
cmp edi, 0x57205429
jne 0x4766a0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov edi, edx
mov ecx, dword [eax + ecx + 0xc]
not ecx
or ecx, 0xfffffff9
cmp ecx, 0xffffffff
setne byte [esp + 0x50]
jmp 0x4766a0
mov edi, 0x57205429
jmp 0x4766a0
mov eax, dword [0x517b98]
mov ecx, dword [0x517b9c]
mov esi, 0x7534fa6c
mov edi, 0x52ad475a
jmp 0x475a68
mov al, byte [esp + 0xf]
lea ecx, [esp + 0x178]
call fcn.0047d5c0
lea ecx, [esp + 0xc0]
call fcn.00479bc0
mov eax, dword [esp + 0x178]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x178], 0x5021a0
mov eax, dword [esp + 0x178]
mov eax, dword [eax + 4]
lea ecx, [eax - 0x78]
mov dword [esp + eax + 0x174], ecx
lea ecx, [esp + 0x190]
call fcn.0047db70
lea ecx, [esp + 0x198]
call fcn.0048eb40
lea eax, [esp + 0x1f0]
mov dword [esp + 0x1f0], 0x50213c
push eax
call fcn.0049e05c
add esp, 4
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0xc0], 0x502140
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + 4]
lea ecx, [eax - 0x70]
mov dword [esp + eax + 0xbc], ecx
lea ecx, [esp + 0xd0]
call fcn.0047db70
lea eax, [esp + 0x130]
mov dword [esp + 0x130], 0x50213c
push eax
call fcn.0049e05c
add esp, 4
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
call fcn.004011f0
mov eax, dword [0x517d2c]
mov ecx, dword [0x517d30]
mov esi, 0x1c08b87
mov edi, 0xe9e3b4d0
lea edx, [eax - 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
mov eax, 0xe9e3b4d0
sete dl
sete byte [esp + 0xb]
cmove eax, esi
cmp ecx, 0xa
setl cl
setl byte [esp + 0x50]
cmovge eax, edi
xor cl, dl
mov ecx, 0xe4f57ea6
cmovne eax, esi
nop word cs:[eax + eax]
nop
cmp ecx, 0x1c08b86
jg 0x476880
cmp ecx, 0xe4f57ea6
je 0x476898
cmp ecx, 0xe9e3b4d0
jne 0x476860
mov ecx, 0x2b2d5b0d
jmp 0x476860
cmp ecx, 0x1c08b87
je 0x476c3b
cmp ecx, 0x2b2d5b0d
jne 0x476860
mov ecx, eax
jmp 0x476860
movzx edx, byte [esp + 0xb]
movzx ecx, byte [esp + 0x50]
mov esi, 0xe9e3b4d0
mov edi, 0x2b2d5b0d
mov ch, dl
xor ch, cl
cmovne esi, edi
test cl, cl
mov ecx, esi
cmovne ecx, edi
test dl, dl
cmove ecx, esi
jmp 0x476860
lea esi, [esp + 0xc0]
lea eax, [esp + 0x50]
mov ecx, esi
push eax
call fcn.0047c660
xorps xmm0, xmm0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
movaps xmmword [esp + 0x80], xmm0
sub esp, 0x18
movsd xmm0, qword [esp + 0xa8]
mov ecx, esi
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x98]
movsd xmm1, qword [esp + 0xa0]
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
call fcn.0047be30
mov ecx, dword [esp + 0x1c]
mov eax, dword [0x517cc8]
mov edx, dword [0x517ccc]
mov dword [esp + 0x98], eax
lea eax, [esp + 0xa0]
mov dword [esp + 0x9c], edx
add ecx, 0x10
mov dword [eax], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
sub esp, 0x18
movsd xmm0, qword [esp + 0xc0]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0xb0]
movsd xmm1, qword [esp + 0xb8]
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
call fcn.0047ce20
mov eax, 0x5058153c
jmp 0x475a90
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov eax, 0xea2879e8
jmp 0x475a90
mov eax, dword [0x517b98]
mov esi, 0x508f3251
mov edi, 0xc70bc7a4
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0xc70bc7a4
sete cl
cmove eax, esi
cmp dword [0x517b9c], 0xa
setl dl
cmovge eax, edi
xor dl, cl
cmovne eax, esi
jmp 0x475a90
mov eax, 0xf8c50eb1
jmp 0x475a90
mov eax, dword [esp + 0x7c]
mov edx, 0x18853031
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x40], 0
mov eax, dword [ecx + eax + 0xc]
mov ecx, eax
xor ecx, 0xfffffff9
test ecx, eax
mov eax, 0xf5bd93a5
cmove eax, edx
jmp 0x475a90
mov cl, byte [esp + 0x2f]
mov eax, 0xf5bd93a5
mov dword [esp + 0x40], ecx
jmp 0x475a90
cmp byte [esp + 0x50], 0
mov eax, 0x8f8b2dc5
mov ecx, 0x942a6bf9
cmovne eax, ecx
jmp 0x475a90
mov eax, dword [0x517b98]
mov ecx, dword [0x517b9c]
mov esi, 0x5706f8c9
mov edi, 0xfa0c9bd9
lea edx, [eax - 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
cmovne esi, edi
test eax, edx
mov eax, esi
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esp + 0x40]
cmovge eax, esi
and cl, 1
mov byte [esp + 0xf], cl
jmp 0x475a90
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, 0xe58b8fd2
jmp 0x475a90
mov al, byte [esp + 0x50]
mov eax, 0x4a53b1aa
jmp 0x475a90
mov ecx, dword [esp + 0x48]
call fcn.004011f0
mov eax, dword [0x517d2c]
mov ecx, dword [0x517d30]
mov esi, 0x1c08b87
mov edi, 0xe9e3b4d0
lea edx, [eax - 1]
imul edx, eax
mov eax, 0xe9e3b4d0
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
sete byte [esp + 0xb]
cmove eax, esi
cmp ecx, 0xa
setl cl
setl byte [esp + 0x50]
cmovge eax, edi
xor cl, dl
mov ecx, 0xe4f57ea6
cmovne eax, esi
nop dword [eax]
cmp ecx, 0x1c08b86
jg 0x476bb0
cmp ecx, 0xe4f57ea6
je 0x476bc8
cmp ecx, 0xe9e3b4d0
jne 0x476b90
mov ecx, 0x2b2d5b0d
jmp 0x476b90
cmp ecx, 0x1c08b87
je 0x476ced
cmp ecx, 0x2b2d5b0d
jne 0x476b90
mov ecx, eax
jmp 0x476b90
movzx edx, byte [esp + 0xb]
movzx ecx, byte [esp + 0x50]
mov esi, 0xe9e3b4d0
mov edi, 0x2b2d5b0d
mov ch, dl
xor ch, cl
cmovne esi, edi
test cl, cl
mov ecx, esi
cmovne ecx, edi
test dl, dl
cmove ecx, esi
jmp 0x476b90
mov eax, dword [0x517b98]
mov ecx, dword [0x517b9c]
mov esi, 0xe3ca025d
mov edi, 0x7f9b7713
lea edx, [eax - 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
cmovne esi, edi
test eax, edx
mov dl, byte [esp + 0x50]
mov eax, esi
cmove eax, edi
cmp ecx, 0xa
cmovge eax, esi
mov byte [esp + 0x2e], dl
jmp 0x475a90
mov ecx, dword [esp + 0x48]
call fcn.004011f0
mov eax, dword [0x517d2c]
mov ecx, dword [0x517d30]
mov esi, 0x1c08b87
mov edi, 0xe9e3b4d0
lea edx, [eax - 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
mov eax, 0xe9e3b4d0
sete dl
sete byte [esp + 0xb]
cmove eax, esi
cmp ecx, 0xa
setl cl
setl byte [esp + 0x50]
cmovge eax, edi
xor cl, dl
mov ecx, 0xe4f57ea6
cmovne eax, esi
nop
cmp ecx, 0x1c08b86
jg 0x476cb0
cmp ecx, 0xe4f57ea6
je 0x476cc4
cmp ecx, 0xe9e3b4d0
jne 0x476c90
mov ecx, 0x2b2d5b0d
jmp 0x476c90
cmp ecx, 0x1c08b87
je 0x476cf7
cmp ecx, 0x2b2d5b0d
jne 0x476c90
mov ecx, eax
jmp 0x476c90
movzx edx, byte [esp + 0xb]
movzx ecx, byte [esp + 0x50]
mov esi, 0xe9e3b4d0
mov edi, 0x2b2d5b0d
mov ch, dl
xor ch, cl
cmovne esi, edi
test cl, cl
mov ecx, esi
cmovne ecx, edi
test dl, dl
cmove ecx, esi
jmp 0x476c90
mov eax, 0xfa0c9bd9
jmp 0x475a90
mov eax, dword [0x517b98]
mov ecx, dword [0x517b9c]
mov esi, 0x5706f8c9
mov edi, 0x7bcad2ea
jmp 0x475a68
mov al, byte [esp + 0xf]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret