Function at 0x100467c0
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x580
cmp dword [edx + 8], 0
call 0x100467d8
pop eax
mov dword [esp + 0x3c], ecx
mov ecx, 0
mov dword [esp + 8], 0
mov dword [esp + 0x18], eax
mov eax, 6
jne 0x10046802
lea eax, [edx + 8]
lea ecx, [edx + 0xc]
mov dword [edx + 8], 0xffffffff
mov dword [esp + 0x90], ecx
mov dword [esp + 0x48], edx
lea ebx, [0x16a9bae]
lea edx, [0x16a9baf]
mov ecx, 0xfffffff9
xor esi, esi
mov dword [esp + 0x44], eax
nop word cs:[eax + eax]
nop
movzx eax, byte [ebx]
mov ebx, edx
mov edx, eax
add dl, 0xd0
cmp dl, 0xa
jb 0x10046853
or al, 0x20
mov edx, eax
add dl, 0x9f
cmp dl, 6
jae 0x10047a7b
add al, 0xa9
mov edx, eax
mov eax, esi
movzx edi, dl
lea edx, [ebx + 1]
shl eax, 4
or edi, eax
test ecx, ecx
cmove edx, ebx
je 0x10046874
shld dword [esp + 8], esi, 4
inc ecx
test ebx, ebx
mov esi, edi
jne 0x10046830
mov ebx, dword [esp + 0x90]
test ebx, ebx
je 0x100468c4
mov eax, dword [ebx + 4]
mov ecx, dword [eax]
lea esi, [eax + 0x68]
push esi
push 2
push 0
push 0
push dword [ebx]
push dword [eax + 8]
call dword [ecx + 0x2cc]
add esp, 0x18
add eax, 4
cmp eax, 4
ja 0x10046975
mov ecx, dword [esp + 0x18]
add ecx, dword [eax*4 + 0x1677720]
jmp ecx
movzx eax, byte [esp + 0x44]
mov edx, 7
xor edi, 0x20
shl eax, 2
mov ecx, dword [eax + 0x16a5238]
mov ebx, dword [eax + 0x16a5268]
mov dword [esp + 8], ecx
mov ecx, 0x16a51d0
call fcn.1000bf90
mov edx, dword [esp + 8]
mov ecx, ebx
mov esi, eax
call fcn.1000bf90
mov edx, dword [esp + 0x3c]
test eax, eax
mov ecx, 1
cmove eax, ecx
test esi, esi
cmove esi, ecx
mov dword [edx], esi
mov dword [edx + 4], eax
mov dword [edx + 8], edi
mov dword [edx + 0xc], 0
mov dword [edx + 0x144], 2
mov esi, dword [esp + 0x48]
mov edx, dword [ebp + 8]
cmp dword [edx], 0
jne 0x10047771
jmp 0x10047753
mov al, 4
mov dword [esp + 0xc], 0
mov byte [ebx + 8], al
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
xor esi, esi
lea edx, [0x16a9bae]
lea eax, [0x16a9baf]
mov edi, 0xfffffff9
mov dword [esp + 8], 0
nop dword [eax]
movzx ebx, byte [edx]
mov edx, eax
mov eax, ebx
add al, 0xd0
cmp al, 0xa
jb 0x100469d1
or bl, 0x20
mov eax, ebx
add al, 0x9f
cmp al, 6
jae 0x10047a7b
add bl, 0xa9
mov eax, ebx
mov ecx, esi
movzx ebx, al
lea eax, [edx + 1]
shl ecx, 4
or ebx, ecx
test edi, edi
cmove eax, edx
je 0x100469f2
shld dword [esp + 8], esi, 4
inc edi
test edx, edx
mov esi, ebx
jne 0x100469b0
cmp byte [esp + 0x18], 0
je 0x10046b75
neg dword [esp + 0x1c]
mov eax, 0
lea ecx, [esp + 0xe0]
mov edx, 0x200
mov dword [esp + 0xe0], 1
mov dword [esp + 0xe8], 0
mov dword [esp + 0x574], 0
mov dword [esp + 0xec], 0
sbb eax, eax
mov dword [esp + 0xc], eax
lea eax, [esp + 0x374]
mov dword [esp + 0xe4], eax
call fcn.1002e2d0
mov edi, dword [esp + 0xe0]
mov ebx, dword [esp + 0xe4]
cmp al, 8
jne 0x10046bc4
movq xmm0, qword [esp + 0xe8]
mov eax, dword [esp + 0x38]
mov ecx, ebx
test edi, edi
je 0x10046ccc
or dword [esp + 0xc], eax
movzx eax, cl
and ebx, 0xffffff00
lea edx, [0x16a9bae]
lea esi, [0x16a9baf]
mov ecx, 0xfffffff9
or eax, ebx
nop word cs:[eax + eax]
nop
movzx ebx, byte [edx]
mov edx, esi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x10046ace
or bl, 0x20
add bl, 0x9f
cmp bl, 6
jae 0x10047a7b
lea esi, [edx + 1]
test ecx, ecx
cmove esi, edx
je 0x10046add
inc ecx
test edx, edx
jne 0x10046ab0
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x108], edi
mov dword [esp + 0x10c], eax
movq qword [esp + 0x110], xmm0
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x124], 0
lea esi, [esp + 0x4c]
mov word [esp + 0x4c], 0
mov dword [esp + 0x120], edx
mov dword [esp + 0x128], ecx
lea ecx, [esp + 0x160]
lea edx, [esp + 0x108]
push 2
push esi
push 0
call fcn.10048b50
add esp, 0xc
mov ecx, dword [esp + 0x160]
test ecx, ecx
je 0x10046c55
mov eax, dword [esp + 0x164]
jne 0x10046c63
jmp 0x10046f8d
mov eax, dword [esp + 0xc]
mov edx, 7
xor ebx, 0x23
mov ecx, dword [eax*4 + 0x16a5238]
mov edi, dword [eax*4 + 0x16a5268]
mov dword [esp + 8], ecx
mov ecx, 0x16a51d0
call fcn.1000bf90
mov edx, dword [esp + 8]
mov ecx, edi
mov esi, eax
call fcn.1000bf90
test esi, esi
mov ecx, 1
cmove esi, ecx
test eax, eax
cmove eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [ecx], esi
jmp 0x10046d84
mov edx, 1
mov byte [esp + 8], al
mov ecx, 1
push dword [esp + 0xec]
call fcn.1000a460
add esp, 4
test eax, eax
je 0x10046cb9
mov esi, dword [ebx + 0x200]
mov ecx, dword [ebx + 0x204]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
test esi, esi
mov dword [esp + 0x108], esi
mov dword [esp + 0x10c], ecx
je 0x100481a0
cmp esi, eax
jne 0x100481a0
cmp ecx, edx
jne 0x100481a0
mov eax, dword [esp + 0x38]
cmp ebx, edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x108], ebx
jne 0x10048258
mov dword [edi + 0x200], 0
xor edi, edi
movzx ecx, byte [esp + 8]
test edi, edi
jne 0x10046a84
jmp 0x10046ccc
movzx eax, byte [esp + 0x164]
je 0x10046f8d
cmp eax, 2
jne 0x10046cb0
movzx eax, word [ecx]
cmp eax, 0x5a4d
jne 0x10046cb0
lea ecx, [esp + 0x160]
mov dword [esp + 0x4c], 0
lea edx, [esp + 0x108]
push 4
push esi
push 0x3c
call fcn.10048b50
add esp, 0xc
mov ecx, dword [esp + 0x160]
test ecx, ecx
je 0x10046da0
mov eax, dword [esp + 0x164]
jmp 0x10046da8
xor ecx, ecx
xor eax, eax
jmp 0x10046f8f
mov eax, dword [esp + 0x38]
xor edi, edi
movzx ecx, byte [esp + 8]
test edi, edi
jne 0x10046a84
mov byte [esp + 8], cl
xor ecx, ecx
lea edx, [0x16a9bae]
lea edi, [0x16a9baf]
mov eax, 0xfffffff9
xor esi, esi
nop word cs:[eax + eax]
nop
movzx ebx, byte [edx]
mov edx, edi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x10046d15
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x10047a7b
add bl, 0xa9
mov bh, bl
mov edi, ecx
movzx ebx, bh
shl edi, 4
or ebx, edi
lea edi, [edx + 1]
test eax, eax
cmove edi, edx
je 0x10046d34
shld esi, ecx, 4
inc eax
test edx, edx
mov ecx, ebx
jne 0x10046cf0
movzx eax, byte [esp + 8]
mov edx, 0xd
xor ebx, 0x27
mov ecx, dword [eax*4 + 0x16a4fc4]
mov esi, dword [eax*4 + 0x16a4fe4]
mov dword [esp + 8], ecx
mov ecx, 0x16a4e5f
call fcn.1000bf90
mov edx, dword [esp + 8]
mov ecx, esi
mov edi, eax
test eax, eax
mov eax, 1
cmove edi, eax
call fcn.1000bf90
test eax, eax
mov ecx, 1
cmove eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [ecx], edi
mov dword [ecx + 4], eax
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x144], 2
jmp 0x10047741
movzx eax, byte [esp + 0x164]
je 0x10046f8d
cmp eax, 4
jne 0x10046dcd
mov ebx, dword [ecx]
lea eax, [ebx - 4]
cmp eax, 0x7ffffff9
jae 0x10046dd6
test bl, 3
je 0x10046ddf
mov al, 3
xor ecx, ecx
jmp 0x10046f8f
mov al, 1
xor ecx, ecx
jmp 0x10046f8f
mov al, 4
xor ecx, ecx
jmp 0x10046f8f
lea edi, [esp + 0x160]
mov dword [esp + 0x4c], 0
lea edx, [esp + 0x108]
mov ecx, edi
push 4
push esi
push ebx
call fcn.10048b50
add esp, 0xc
mov eax, dword [esp + 0x160]
test eax, eax
je 0x10046f85
cmp dword [esp + 0x164], 4
jne 0x10046f7f
cmp dword [eax], 0x4550
jne 0x10046f7f
lea eax, [ebx + 4]
pxor xmm0, xmm0
mov dword [esp + 0x170], 0
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x108]
movdqa xmmword [esp + 0x160], xmm0
push 0x14
push edi
push eax
call fcn.10048b50
add esp, 0xc
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x10047a61
cmp dword [esp + 0x50], 0x14
jne 0x10047a6a
movss xmm1, dword [eax + 0x10]
movd xmm0, dword [eax]
movq xmm2, qword [eax + 4]
mov ecx, dword [eax + 0xc]
lea eax, [ebx + 0x18]
mov dword [esp + 0x13c], ebx
lea edx, [esp + 0x108]
movaps xmmword [esp + 0x340], xmm1
xorps xmm1, xmm1
mov dword [esp + 0x138], ecx
movdqa xmmword [esp + 0x330], xmm0
movdqa xmmword [esp + 0x350], xmm2
lea ecx, [esp + 0x4c]
movaps xmmword [esp + 0x240], xmm1
movaps xmmword [esp + 0x230], xmm1
movaps xmmword [esp + 0x220], xmm1
movaps xmmword [esp + 0x210], xmm1
movaps xmmword [esp + 0x200], xmm1
movaps xmmword [esp + 0x1f0], xmm1
movaps xmmword [esp + 0x1e0], xmm1
movaps xmmword [esp + 0x1d0], xmm1
movaps xmmword [esp + 0x1c0], xmm1
movaps xmmword [esp + 0x1b0], xmm1
movaps xmmword [esp + 0x1a0], xmm1
movaps xmmword [esp + 0x190], xmm1
movaps xmmword [esp + 0x180], xmm1
movaps xmmword [esp + 0x170], xmm1
movaps xmmword [esp + 0x160], xmm1
push 0xf0
push edi
mov dword [esp + 0x10], eax
push eax
call fcn.10048b50
add esp, 0xc
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x10047b9a
cmp dword [esp + 0x50], 0xf0
jne 0x10047a94
movzx ecx, byte [eax + 2]
movzx edx, byte [eax + 3]
movups xmm0, xmmword [eax + 4]
mov edi, eax
mov byte [esp + 0x12], cl
mov byte [esp + 0x13], dl
jmp 0x10047adc
mov al, 2
xor ecx, ecx
jmp 0x10046f8f
movzx eax, byte [esp + 0x164]
mov cl, 2
mov byte [esp + 0x20], cl
mov byte [esp + 0x21], al
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], 0
xor esi, esi
lea edx, [0x16a9bae]
lea ebx, [0x16a9baf]
mov eax, 0xfffffff9
mov dword [esp + 8], 0
nop
movzx ecx, byte [edx]
mov edx, ebx
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10046fe5
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x10047a7b
add cl, 0xa9
mov ch, cl
mov ebx, esi
movzx edi, ch
shl ebx, 4
or edi, ebx
lea ebx, [edx + 1]
test eax, eax
cmove ebx, edx
je 0x10047006
shld dword [esp + 8], esi, 4
inc eax
test edx, edx
mov esi, edi
jne 0x10046fc0
cmp dword [esp + 0x14], 0
je 0x100470a8
movzx eax, byte [esp + 0x86]
mov edx, dword [esp + 0x40]
mov edi, dword [ebp + 0x10]
xor ebx, ebx
mov byte [esp + 0x82], al
movzx eax, word [esp + 0x84]
mov ecx, edx
shr ecx, 1
and ecx, 0x55555555
mov word [esp + 0x80], ax
mov eax, edx
sub eax, ecx
mov ecx, eax
shr eax, 2
and ecx, 0x33333333
and eax, 0x33333333
add eax, ecx
mov ecx, eax
shr ecx, 4
add ecx, eax
and ecx, 0xf0f0f0f
imul eax, ecx, 0x1010101
shr eax, 0x18
cmp eax, 1
setne al
je 0x1004707a
mov edx, dword [edi + 4]
mov ecx, dword [edi + 0xc]
mov esi, dword [esp + 0xc]
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0xa4]
mov bl, al
add ebx, ebx
test ecx, ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0xc], esi
je 0x10047114
mov dword [esp + 8], ebx
jmp 0x1004713d
movzx eax, byte [esp + 0x20]
mov ecx, 0x16a9bd5
mov edx, 0xa
xor edi, 0x2b
mov ebx, dword [eax*4 + 0x16a9be0]
mov eax, dword [eax*4 + 0x16a9bec]
mov dword [esp + 8], eax
call fcn.1000bf90
mov edx, dword [esp + 8]
mov ecx, ebx
mov esi, eax
test eax, eax
mov eax, 1
cmove esi, eax
call fcn.1000bf90
mov edx, dword [esp + 0x3c]
test eax, eax
mov ecx, 1
cmove eax, ecx
mov dword [edx], esi
mov dword [edx + 4], eax
mov dword [edx + 8], edi
mov dword [edx + 0xc], 0
mov dword [edx + 0x144], 2
jmp 0x10047735
lea eax, [edx - 1]
test edx, eax
sete al
test edx, edx
setne cl
test cl, al
je 0x1004712f
mov dword [esp + 8], ebx
mov dword [esp + 0x30], edx
jmp 0x1004713d
mov eax, dword [edi + 8]
or ebx, 4
mov dword [esp + 8], ebx
mov dword [esp + 0x30], eax
pshufd xmm0, xmmword [esp + 0x250], 0x55
mov ebx, dword [esp + 0xa8]
mov edi, 0x80000000
movd edx, xmm0
mov esi, ebx
lea ecx, [ebx - 1]
cmp edx, 0x80000000
cmovb edi, edx
neg esi
mov eax, edi
and eax, esi
and edi, ecx
cmovne edi, ebx
add edi, eax
jb 0x1004820d
xor eax, eax
cmp edi, edx
mov edx, edi
mov dword [esp + 0xdc], esi
mov dword [esp + 0x144], ecx
setb byte [esp + 0x90]
and edx, esi
and edi, ecx
cmovne edi, ebx
add edi, edx
jb 0x10048226
mov ecx, dword [ebp + 0x10]
mov edx, edi
mov esi, dword [ecx]
mov ecx, esi
lea ebx, [esi - 1]
neg ecx
mov dword [esp + 0x148], ebx
and edx, ecx
and edi, ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x14c], ecx
cmovne edi, esi
add edi, edx
jb 0x1004823f
movzx ecx, byte [esp + 0x90]
movq xmm0, qword [esp + 0x20]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x4c], 4
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0xd4], edi
mov al, cl
lea ecx, [esp + 0x4c]
movdqa xmmword [esp + 0x360], xmm0
or dword [esp + 8], eax
cmp dword [esp + 0x40], esi
mov esi, dword [esp + 0xd0]
jb 0x100474f6
mov edx, esi
call fcn.1002d340
cmp al, 8
jne 0x100475e0
test esi, esi
je 0x10047592
mov eax, dword [esp + 0x30]
mov dword [esp + 0x34], 0
mov dword [esp + 0x1c], 0
mov ecx, eax
dec eax
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x14]
neg ecx
mov dword [esp + 0xd8], ecx
lea ecx, [eax + 8]
lea eax, [esi*8]
mov esi, dword [esp + 8]
lea eax, [eax + eax*4]
mov edi, esi
nop
mov ebx, dword [ecx + 4]
mov edx, dword [esp + 0xd4]
or edi, 0x40
mov dword [esp + 0x15c], eax
and ebx, dword [esp + 0xdc]
cmp ebx, edx
mov dword [esp + 0x18], ebx
cmovbe edi, esi
xor eax, eax
cmp ebx, dword [esp + 0x34]
mov esi, 0xff
setne al
cmovb eax, esi
test al, al
je 0x100472c8
movzx eax, al
cmp eax, 1
jne 0x100474e0
or edi, 8
mov dword [esp + 8], ecx
mov ecx, dword [ecx]
test ecx, ecx
jne 0x100472d9
mov eax, dword [esp + 8]
mov ecx, dword [eax + 8]
mov eax, edx
mov edx, 0
sub eax, dword [esp + 0x18]
cmovb eax, edx
cmp ecx, eax
jbe 0x10047300
or edi, 0x40
xor edx, edx
xor ecx, ecx
jmp 0x10047342
mov edx, dword [esp + 0x148]
mov eax, ecx
and eax, dword [esp + 0x14c]
and edx, ecx
cmovne edx, dword [esp + 0x8c]
add edx, eax
jb 0x1004816e
mov eax, ecx
and eax, dword [esp + 0xdc]
and ecx, dword [esp + 0x144]
cmovne ecx, dword [esp + 0xa8]
add ecx, eax
jb 0x10048187
mov eax, dword [esp + 8]
mov ebx, dword [eax + 0xc]
test ebx, ebx
jne 0x10047356
xor eax, eax
cmp dword [esp + 0x1c], 0
jne 0x1004735d
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
mov esi, dword [esp + 0x38]
add eax, ebx
cmovae esi, eax
mov dword [esp + 0x38], esi
jb 0x10047399
mov dword [esp + 0x90], ebx
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x140]
mov eax, ebx
and eax, dword [esp + 0xd8]
and esi, ebx
mov ebx, dword [esp + 0x90]
cmovne esi, dword [esp + 0x30]
add esi, eax
jae 0x100473a1
or edi, 0x100
xor esi, esi
and ebx, dword [esp + 0xd8]
mov dword [esp + 0x158], edx
mov eax, dword [esp + 0x1c]
sub esi, ebx
mov dword [esp + 0x90], ebx
cmp esi, edx
cmovae esi, edx
mov edx, dword [esp + 0xc]
cmp ebx, edx
jae 0x100473e0
sub edx, dword [esp + 0x90]
cmp edx, esi
cmovae edx, esi
jmp 0x100473e8
or edi, 0x100
xor edx, edx
cmp eax, 0x10000
mov dword [esp + 0x154], ecx
mov dword [esp + 0x34], edi
je 0x10048148
mov edi, esi
mov ebx, eax
xor eax, eax
mov ecx, dword [esp + 0x34]
sub edi, edx
cmp edi, dword [esp + 0x30]
mov edi, 0
setae al
shl eax, 7
sub eax, 0xffffff80
cmp esi, edx
cmove eax, edi
mov edi, dword [esp + 0x158]
or ecx, eax
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], edi
mov edi, ecx
mov ecx, dword [esp + 0x154]
add eax, ecx
mov dword [esp + 0x168], ecx
mov ecx, dword [esp + 0x150]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x16c], eax
mov dword [esp + 0x170], esi
mov dword [esp + 0x174], edx
mov dword [esp + 0x178], ecx
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x160]
mov word [esp + 0x17c], bx
mov word [esp + 0x17e], bx
call fcn.1002e4b0
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x15c]
mov edx, dword [esp + 0x8c]
inc ebx
mov esi, edi
mov dword [esp + 0x1c], ebx
add ecx, 0x28
add eax, 0xffffffd8
jne 0x10047280
jmp 0x1004759d
or edi, 0x10
mov dword [esp + 8], ecx
mov ecx, dword [ecx]
test ecx, ecx
jne 0x100472d9
jmp 0x100472d2
mov edx, 1
call fcn.1002d340
cmp al, 8
jne 0x100475e0
lea eax, [esi - 1]
mov ecx, eax
shl ecx, 0x10
or ecx, 0x100
cmp eax, 0x10000
mov eax, 0x101
cmovb eax, ecx
test al, al
jne 0x100482c5
cmp edi, ebx
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x160]
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], edi
mov dword [esp + 0x168], edi
mov dword [esp + 0x16c], 0
mov dword [esp + 0x170], edi
cmovb ebx, edi
shr eax, 0x10
mov dword [esp + 0x174], ebx
mov dword [esp + 0x178], 0xe0000000
mov word [esp + 0x17c], 0
mov word [esp + 0x17e], ax
call fcn.1002e4b0
mov edi, dword [esp + 8]
mov edx, dword [esp + 0x8c]
cmp dword [esp + 0x40], edx
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x34], edi
mov dword [esp + 0xe0], edx
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x54]
setae byte [esp + 0x90]
mov dword [esp + 0x18], eax
mov dword [esp + 0xe4], edx
mov dword [esp + 0xc], ecx
jmp 0x10047620
mov edx, 4
mov byte [esp + 0xe0], al
mov ecx, 0x20
push dword [esp + 0x54]
call fcn.1000a460
add esp, 4
test eax, eax
je 0x10047618
mov ecx, dword [0x16ad000]
push edx
push eax
push dword [esp + 0x54]
push 0x16ac968
call dword [ecx + 0x10]
add esp, 0x10
mov byte [esp + 0x90], 2
xor eax, eax
lea ecx, [0x16a9bae]
lea ebx, [0x16a9baf]
mov edi, 0xfffffff9
mov dword [esp + 8], 0
nop dword [eax + eax]
movzx edx, byte [ecx]
mov ecx, ebx
mov dh, dl
add dh, 0xd0
cmp dh, 0xa
jb 0x10047665
or dl, 0x20
mov dh, dl
add dh, 0x9f
cmp dh, 6
jae 0x10047a7b
add dl, 0xa9
mov dh, dl
mov ebx, eax
movzx esi, dh
shl ebx, 4
or esi, ebx
lea ebx, [ecx + 1]
test edi, edi
cmove ebx, ecx
je 0x10047686
shld dword [esp + 8], eax, 4
inc edi
test ecx, ecx
mov eax, esi
jne 0x10047640
movzx edx, byte [esp + 0x90]
cmp dl, 2
jne 0x100477cf
movzx eax, byte [esp + 0xe0]
mov edx, 0xd
xor esi, 0x2d
mov ecx, dword [eax*4 + 0x16a4fc4]
mov edi, dword [eax*4 + 0x16a4fe4]
mov dword [esp + 8], ecx
mov ecx, 0x16a4e5f
call fcn.1000bf90
mov edx, dword [esp + 8]
mov ecx, edi
mov ebx, eax
test eax, eax
mov eax, 1
cmove ebx, eax
call fcn.1000bf90
test eax, eax
mov ecx, 1
mov edx, 4
cmove eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [ecx], ebx
mov dword [ecx + 4], eax
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x144], 2
mov ecx, 0x28
push dword [esp + 0xcc]
call fcn.1000a460
add esp, 4
test eax, eax
je 0x10047735
mov ecx, dword [0x16ad000]
push edx
push eax
push dword [esp + 0x1c]
push 0x16ac968
call dword [ecx + 0x10]
add esp, 0x10
lea ecx, [esp + 0x108]
call fcn.1002e700
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
mov edx, dword [ebp + 8]
inc dword [eax]
cmp dword [edx], 0
jne 0x10047771
mov eax, dword [edx + 8]
test eax, eax
je 0x10047771
mov ecx, dword [0x16ad000]
push 1
push eax
push dword [edx + 4]
push 0x16ac968
call dword [ecx + 0x10]
add esp, 0x10
dec dword [esi]
je 0x1004777d
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 4]
lea ecx, [eax + 1]
mov dword [esi + 4], ecx
cmp byte [esi + 0x15], 0
je 0x100477af
mov eax, dword [esi + 0x10]
mov ecx, dword [eax]
push dword [esi + 0xc]
push dword [eax + 8]
call dword [ecx + 0x2d8]
add esp, 8
mov eax, dword [esi + 4]
mov ecx, dword [esi]
dec eax
or ecx, eax
mov dword [esi + 4], eax
jne 0x10047775
jmp 0x100477b8
xor ecx, ecx
or ecx, eax
mov dword [esi + 4], eax
jne 0x10047775
mov eax, dword [0x16ad000]
push 4
push 0x18
push esi
push 0x16ac968
call dword [eax + 0x10]
add esp, 0x10
jmp 0x10047775
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0xc]
movq xmm0, qword [esp + 0xe0]
mov esi, dword [esp + 0x13c]
mov edi, dword [esp + 0x138]
mov dword [ecx + 0x130], eax
mov eax, dword [esp + 0xd4]
mov dword [ecx + 0x134], eax
mov eax, dword [esp + 0x34]
mov dword [ecx + 0x138], eax
mov eax, dword [esp + 0x44]
inc dword [eax]
mov eax, dword [ebp + 8]
movzx ebx, byte [esp + 0x82]
movsd xmm1, qword [eax]
mov eax, dword [eax + 8]
movsd qword [ecx + 0x144], xmm1
mov dword [ecx + 0x14c], eax
movaps xmm1, xmmword [esp + 0x360]
mov eax, dword [esp + 0xac]
movlps qword [ecx], xmm1
mov dword [ecx + 8], eax
mov eax, dword [esp + 0xb0]
movaps xmm1, xmmword [esp + 0x2e0]
mov dword [ecx + 0xc], eax
movups xmmword [ecx + 0x10], xmm1
movaps xmm1, xmmword [esp + 0x2d0]
mov eax, dword [esp + 0xb4]
movups xmmword [ecx + 0x20], xmm1
movaps xmm1, xmmword [esp + 0x2c0]
movups xmmword [ecx + 0x30], xmm1
movaps xmm1, xmmword [esp + 0x2b0]
movups xmmword [ecx + 0x40], xmm1
movaps xmm1, xmmword [esp + 0x2a0]
movups xmmword [ecx + 0x50], xmm1
movaps xmm1, xmmword [esp + 0x290]
movups xmmword [ecx + 0x60], xmm1
mov dword [ecx + 0x70], eax
movaps xmm1, xmmword [esp + 0x280]
mov eax, dword [esp + 0xb8]
movlps qword [ecx + 0x74], xmm1
mov dword [ecx + 0x7c], eax
mov eax, dword [esp + 0xc4]
movaps xmm1, xmmword [esp + 0x270]
mov dword [ecx + 0x84], eax
mov eax, dword [esp + 0xc8]
mov dword [ecx + 0x80], eax
movups xmmword [ecx + 0x88], xmm1
movaps xmm1, xmmword [esp + 0x260]
mov eax, dword [esp + 0x134]
movups xmmword [ecx + 0x98], xmm1
movaps xmm1, xmmword [esp + 0x2f0]
movups xmmword [ecx + 0xa8], xmm1
mov dword [ecx + 0xb8], eax
mov eax, dword [esp + 0xa0]
movaps xmm1, xmmword [esp + 0x250]
mov dword [ecx + 0xbc], eax
mov eax, dword [esp + 0x40]
mov dword [ecx + 0xc0], eax
mov eax, dword [esp + 0xa4]
mov dword [ecx + 0xc4], eax
mov eax, dword [esp + 0xc0]
movups xmmword [ecx + 0xc8], xmm1
movaps xmm1, xmmword [esp + 0x320]
mov dword [ecx + 0xd8], eax
mov eax, dword [esp + 0xbc]
mov dword [ecx + 0xdc], eax
mov eax, dword [esp + 0x2c]
mov word [ecx + 0xe0], ax
movlps qword [ecx + 0xe2], xmm1
movaps xmm1, xmmword [esp + 0x310]
movzx eax, byte [esp + 0x12]
movss dword [ecx + 0xea], xmm1
movaps xmm1, xmmword [esp + 0x300]
movss dword [ecx + 0xee], xmm1
mov byte [ecx + 0xf2], al
movzx eax, byte [esp + 0x13]
movaps xmm1, xmmword [esp + 0x350]
mov byte [ecx + 0xf3], al
movzx eax, word [esp + 0x80]
mov byte [ecx + 0xf4], 0
mov byte [ecx + 0xf7], bl
mov word [ecx + 0xf5], ax
mov dword [ecx + 0xf8], esi
movlps qword [ecx + 0xfc], xmm1
movaps xmm1, xmmword [esp + 0x330]
mov dword [ecx + 0x104], edi
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0xd0]
movss dword [ecx + 0x108], xmm1
movaps xmm1, xmmword [esp + 0x340]
movss dword [ecx + 0x10c], xmm1
mov dword [ecx + 0x110], esi
mov esi, dword [esp + 0xcc]
mov dword [ecx + 0x114], edi
mov edi, dword [esp + 0x18]
mov dword [ecx + 0x118], esi
mov esi, dword [esp + 0x1c]
movq qword [ecx + 0x120], xmm0
mov dword [ecx + 0x128], edi
mov dword [ecx + 0x12c], esi
mov byte [ecx + 0x13c], dl
mov edx, dword [esp + 0x48]
mov dword [ecx + 0x140], edx
lea ecx, [esp + 0x108]
call fcn.1002e700
jmp 0x10047775
movzx eax, byte [esp + 0x50]
mov cl, 2
jmp 0x10047a6e
mov al, 5
xor ecx, ecx
mov byte [esp + 0x20], cl
mov byte [esp + 0x21], al
jmp 0x10046f97
mov ecx, 0x16ac7bc
mov edx, 0xe
push 0x16a4dc0
call fcn.10007ff0
add esp, 4
ud2
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x108]
push 0xf0
push edi
push dword [esp + 0x10]
call fcn.10048c20
add esp, 0xc
cmp dword [esp + 0x4c], 0
je 0x10047b9a
movzx eax, byte [esp + 0x162]
movzx ecx, byte [esp + 0x163]
movups xmm0, xmmword [esp + 0x164]
mov byte [esp + 0x12], al
mov byte [esp + 0x13], cl
movaps xmmword [esp + 0x2f0], xmm0
movzx eax, word [edi]
mov ecx, edi
mov ecx, dword [edi + 0x14]
cmp eax, 0x10b
mov dword [esp + 0x134], ecx
mov dword [esp + 0x2c], eax
mov ecx, edi
jne 0x10047bad
mov eax, dword [edi + 0x18]
movss xmm2, dword [edi + 0x30]
movups xmm1, xmmword [edi + 0x34]
movd xmm3, dword [edi + 0x44]
movsd xmm0, qword [edi + 0x28]
mov dword [esp + 0xc4], 0
mov esi, 0x58
mov dword [esp + 0xa0], eax
mov eax, dword [edi + 0x1c]
movaps xmmword [esp + 0x310], xmm2
movaps xmmword [esp + 0x250], xmm1
movq xmm1, qword [edi + 0x48]
movq xmm2, qword [edi + 0x50]
movdqa xmmword [esp + 0x300], xmm3
pxor xmm3, xmm3
movaps xmmword [esp + 0x320], xmm0
mov dword [esp + 0xc8], eax
mov eax, dword [edi + 0x20]
punpckldq xmm1, xmm3
punpckldq xmm2, xmm3
movdqa xmmword [esp + 0x270], xmm1
movdqa xmmword [esp + 0x260], xmm2
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x24]
mov dword [esp + 0xa4], eax
jmp 0x10047c42
movzx eax, byte [esp + 0x50]
mov byte [esp + 0x20], 2
mov byte [esp + 0x21], al
jmp 0x10046f97
movsd xmm0, qword [edi + 0x28]
mov edx, dword [edi + 0x1c]
mov ecx, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
movaps xmmword [esp + 0x320], xmm0
movss xmm0, dword [edi + 0x30]
mov dword [esp + 0xc4], edx
movzx edx, word [esp + 0x2c]
mov dword [esp + 0x40], ecx
mov ecx, dword [edi + 0x24]
mov dword [esp + 0xc8], eax
movaps xmmword [esp + 0x310], xmm0
movups xmm0, xmmword [edi + 0x34]
cmp edx, 0x20b
mov dword [esp + 0xa4], ecx
movaps xmmword [esp + 0x250], xmm0
movss xmm0, dword [edi + 0x44]
movaps xmmword [esp + 0x300], xmm0
jne 0x10047de7
movups xmm0, xmmword [edi + 0x48]
movdqu xmm1, xmmword [edi + 0x58]
mov esi, 0x68
mov eax, edi
mov dword [esp + 0xa0], 0
movaps xmmword [esp + 0x270], xmm0
movdqa xmmword [esp + 0x260], xmm1
mov ebx, esi
lea ecx, [edi + esi]
or ebx, 4
mov edx, ebx
sub edx, esi
call fcn.10006140
mov dword [esp + 0xc0], eax
lea eax, [esi + 8]
mov edx, eax
sub edx, ebx
jb 0x100482e6
add ebx, edi
mov ecx, ebx
call fcn.10006140
lea ecx, [esi + 0x18]
mov dword [esp + 0xbc], eax
or ecx, 4
cmp ecx, 0xf0
ja 0x10048309
lea ecx, [esi + 0x20]
or ecx, 4
cmp ecx, 0xf0
ja 0x10048309
lea ecx, [esi + 0x58]
or ecx, 4
cmp ecx, 0xf0
ja 0x10048309
lea ecx, [esi + 0x60]
or ecx, 4
cmp ecx, 0xf0
ja 0x10048309
lea ecx, [esi + 0x78]
or ecx, 4
cmp ecx, 0xf0
ja 0x10048309
lea eax, [esi + 0x80]
cmp eax, 0xf0
ja 0x100482f9
mov eax, esi
or eax, 0x84
cmp eax, 0xf0
ja 0x10048307
movsd xmm0, qword [edi + esi + 8]
movsd xmm1, qword [edi + esi + 0x18]
mov eax, dword [edi + eax]
lea edx, [esi + 0x10]
or edx, 4
mov ebx, dword [edi + edx]
mov edx, dword [edi + esi + 0x78]
movaps xmmword [esp + 0x90], xmm0
movsd xmm0, qword [edi + esi + 0x20]
mov dword [esp + 0xb8], eax
movzx eax, word [esp + 0x4c]
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], edx
movlhps xmm1, xmm0
movsd xmm0, qword [edi + esi + 0x30]
movaps xmmword [esp + 0x2e0], xmm1
movsd xmm1, qword [edi + esi + 0x28]
movlhps xmm1, xmm0
movsd xmm0, qword [edi + esi + 0x40]
movaps xmmword [esp + 0x2d0], xmm1
movsd xmm1, qword [edi + esi + 0x38]
movlhps xmm1, xmm0
movsd xmm0, qword [edi + esi + 0x50]
movaps xmmword [esp + 0x2c0], xmm1
movsd xmm1, qword [edi + esi + 0x48]
movlhps xmm1, xmm0
movsd xmm0, qword [edi + esi + 0x60]
movaps xmmword [esp + 0x2b0], xmm1
movsd xmm1, qword [edi + esi + 0x58]
movlhps xmm1, xmm0
movsd xmm0, qword [edi + esi + 0x70]
movaps xmmword [esp + 0x2a0], xmm1
movsd xmm1, qword [edi + esi + 0x68]
movlhps xmm1, xmm0
movaps xmmword [esp + 0x290], xmm1
movsd xmm1, qword [edi + ecx]
mov ecx, dword [edi + esi + 0x10]
mov word [esp + 0xe0], ax
movzx eax, byte [esp + 0x4e]
movaps xmmword [esp + 0x280], xmm1
mov dword [esp + 0xac], ecx
mov byte [esp + 0xe2], al
jmp 0x10047ea0
movzx eax, byte [esp + 0x4e]
movzx ecx, word [esp + 0x4c]
xorps xmm0, xmm0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
movaps xmmword [esp + 0x270], xmm0
movaps xmmword [esp + 0x260], xmm0
movaps xmmword [esp + 0x2e0], xmm0
movaps xmmword [esp + 0x2d0], xmm0
movaps xmmword [esp + 0x2c0], xmm0
movaps xmmword [esp + 0x2b0], xmm0
movaps xmmword [esp + 0x2a0], xmm0
movaps xmmword [esp + 0x290], xmm0
movaps xmmword [esp + 0x280], xmm0
movaps xmmword [esp + 0x90], xmm0
mov byte [esp + 0xe2], al
mov word [esp + 0xe0], cx
movdqa xmm0, xmmword [esp + 0x340]
movzx eax, byte [esp + 0xe2]
movzx edx, word [esp + 0xe0]
pextrw ecx, xmm0, 0
mov byte [esp + 0x8a], al
mov word [esp + 0x88], dx
add dword [esp + 8], ecx
jb 0x100480f7
js 0x100480f7
movdqa xmm0, xmmword [esp + 0x330]
movzx ecx, word [ebp + 0xc]
pextrw eax, xmm0, 1
cmp ax, cx
cmovae eax, ecx
lea ecx, [esp + 0x160]
movzx esi, ax
lea edx, [esi + 1]
call fcn.1002e240
mov eax, dword [esp + 0x160]
test eax, eax
je 0x10048103
mov edx, dword [esp + 0x166]
movq xmm0, qword [0x16a3530]
movzx ecx, word [esp + 0x164]
pshufd xmm2, xmmword [esp + 0x250], 0xee
movaps xmm1, xmmword [0x16a3540]
mov dword [esp + 0x7a], edx
movzx edx, word [esp + 0x16a]
movq qword [esp + 0x4c], xmm0
movd dword [esp + 0x54], xmm2
mov dword [esp + 0x58], 0
movd dword [esp + 0x5c], xmm2
mov dword [esp + 0x70], 0
movups xmmword [esp + 0x60], xmm1
mov word [esp + 0x7e], dx
mov dword [esp + 0x74], eax
lea eax, [esp + 0x4c]
mov word [esp + 0x78], cx
lea ecx, [esp + 0x160]
lea edx, [esp + 0x74]
push eax
call fcn.1002dc70
add esp, 4
movzx eax, byte [esp + 0x188]
cmp al, 8
jne 0x10048119
test esi, esi
je 0x100480a6
lea ebx, [esp + 0x160]
lea edi, [esp + 0x108]
pxor xmm0, xmm0
mov dword [esp + 0x104], 0
mov dword [esp + 0x100], 0
mov ecx, ebx
mov edx, edi
movdqa xmmword [esp + 0xf0], xmm0
movdqa xmmword [esp + 0xe0], xmm0
push 0x28
lea eax, [esp + 0xe4]
push eax
push dword [esp + 0x10]
call fcn.10048b50
add esp, 0xc
mov eax, dword [esp + 0x160]
test eax, eax
je 0x10048120
cmp dword [esp + 0x164], 0x28
je 0x1004804b
mov ecx, ebx
mov edx, edi
push 0x28
lea eax, [esp + 0xe4]
push eax
push dword [esp + 0x10]
call fcn.10048c20
add esp, 0xc
cmp dword [esp + 0x160], 0
je 0x10048120
lea eax, [esp + 0xe0]
movsd xmm0, qword [eax]
mov ecx, dword [eax + 0x24]
lea edx, [esp + 0x74]
movsd qword [esp + 0x4c], xmm0
movups xmm0, xmmword [eax + 8]
movups xmmword [esp + 0x54], xmm0
movq xmm0, qword [eax + 0x18]
movq qword [esp + 0x64], xmm0
mov eax, dword [eax + 0x20]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x4c]
mov dword [esp + 0x6c], ecx
mov ecx, ebx
push eax
call fcn.1002dc70
add esp, 4
movzx eax, byte [esp + 0x188]
cmp al, 8
jne 0x1004812c
add dword [esp + 8], 0x28
dec esi
jne 0x10047fbd
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x7c]
movzx edx, word [esp + 0x88]
movzx ecx, byte [esp + 0x8a]
movdqa xmm0, xmmword [esp + 0x90]
mov dword [esp + 0x14], eax
mov dword [esp + 0xd0], edi
mov dword [esp + 0xcc], esi
mov word [esp + 0x84], dx
mov byte [esp + 0x86], cl
movq qword [esp + 0x20], xmm0
jmp 0x10046fa3
mov word [esp + 0x20], 0x600
jmp 0x10046f97
movzx eax, byte [esp + 0x164]
mov byte [esp + 0x20], 1
mov byte [esp + 0x21], al
jmp 0x10046f97
mov byte [esp + 0x20], 1
jmp 0x10048132
movzx eax, byte [esp + 0x164]
mov cl, 2
jmp 0x1004812e
mov cl, 1
mov byte [esp + 0x20], cl
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x7c]
mov byte [esp + 0x21], al
call fcn.1002e940
jmp 0x10046f97
mov ecx, 0x16ac93c
mov edx, 0x2b
push 0x16a9420
push 0x16a9320
lea eax, [esp + 0x168]
push eax
call fcn.10008840
add esp, 0xc
ud2
mov ecx, 0x16acb2c
mov edx, 0x2b
push 0x16a9400
call fcn.10007ff0
add esp, 4
ud2
mov ecx, 0x16acb2c
mov edx, 0x2b
push 0x16a9410
call fcn.10007ff0
add esp, 4
ud2
lea eax, [esp + 0x74]
lea edx, [esp + 0x108]
lea ecx, [esp + 0x4c]
mov dword [esp + 0x160], 0x16a9ac0
mov dword [esp + 0x164], 3
mov dword [esp + 0x170], 0
mov dword [esp + 0x168], ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], 0x169d650
mov dword [esp + 0x54], edx
lea ecx, [esp + 0x160]
mov edx, 0x16a9ad8
mov dword [esp + 0x58], 0x169d650
mov dword [esp + 0x16c], 2
call fcn.100075c0
ud2
mov ecx, 0x16acb2c
mov edx, 0x2b
push 0x16a93d0
call fcn.10007ff0
add esp, 4
ud2
mov ecx, 0x16acb2c
mov edx, 0x2b
push 0x16a93e0
call fcn.10007ff0
add esp, 4
ud2
mov ecx, 0x16acb2c
mov edx, 0x2b
push 0x16a93f0
call fcn.10007ff0
add esp, 4
ud2
lea eax, [esp + 0x74]
lea edx, [esp + 0x108]
lea ecx, [esp + 0x4c]
mov dword [esp + 0x160], 0x16a9a80
mov dword [esp + 0x164], 3
mov dword [esp + 0x170], 0
mov dword [esp + 0x168], ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], 0x166ca90
mov dword [esp + 0x54], edx
lea ecx, [esp + 0x160]
mov edx, 0x16a9a98
mov dword [esp + 0x58], 0x166ca90
mov dword [esp + 0x16c], 2
call fcn.100075c0
ud2
mov ecx, 0x16ac93c
mov edx, 0x2b
mov byte [esp + 0x160], 1
push 0x16a9430
push 0x16a9310
jmp 0x1004815c
mov ecx, ebx
mov edx, eax
push 0x16a9ec8
call fcn.100083d0
add esp, 4
ud2
mov ecx, eax
mov edx, 0xf0
push 0x16a9ee8
jmp 0x10048313
mov ecx, eax
mov edx, 0xf0
push 0x16a9ed8
call fcn.10007b00
add esp, 4
ud2