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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x250
mov dword [esp + 0x4c], ecx
mov ecx, dword [edx + 8]
cmp ecx, 0x7ffffffe
jbe 0x100447a7
mov ecx, 0x3e1ae20
mov edx, 6
call fcn.1001cfa0
test eax, eax
mov esi, 1
mov ecx, 0x3e1ae58
mov edx, 0x12
cmove eax, esi
mov dword [esp + 4], eax
call fcn.1001cfa0
test eax, eax
lea edi, [0x3e1ade6]
mov ecx, 0xfffffff9
cmove eax, esi
lea esi, [0x3e1ade5]
xor ebx, ebx
mov dword [esp + 8], eax
xor eax, eax
nop dword [eax]
movzx edx, byte [esi]
mov esi, edi
mov dh, dl
add dh, 0xd0
cmp dh, 0xa
jb 0x10044765
or dl, 0x20
mov dh, dl
add dh, 0x9f
cmp dh, 6
jae 0x100460cf
add dl, 0xa9
mov dh, dl
mov edi, eax
movzx edx, dh
shl edi, 4
or edx, edi
lea edi, [esi + 1]
test ecx, ecx
cmove edi, esi
je 0x10044784
shld ebx, eax, 4
inc ecx
test esi, esi
mov eax, edx
jne 0x10044740
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 4]
mov esi, dword [esp + 8]
xor edx, 0x48
mov dword [eax], ecx
mov dword [eax + 4], esi
mov dword [eax + 8], edx
mov dword [eax + 0xc], 0
jmp 0x100460ad
mov esi, edx
add edx, 8
mov eax, dword [ebp + 8]
lea edi, [0x3e1ade6]
mov dword [esp + 0x134], edx
lea edx, [ecx + 1]
mov dword [esp + 0x7c], esi
mov dword [esi + 8], edx
lea edx, [esi + 0xc]
lea esi, [0x3e1ade5]
mov dword [esp + 0x80], edx
mov edx, 0xfffffff9
nop dword [eax + eax]
movzx ebx, byte [esi]
mov esi, edi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x100447fe
or bl, 0x20
add bl, 0x9f
cmp bl, 6
jae 0x100460cf
lea edi, [esi + 1]
test edx, edx
cmove edi, esi
je 0x1004480d
inc edx
test esi, esi
jne 0x100447e0
mov edx, dword [esp + 0x80]
cmp dword [edx], 0
je 0x10044835
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x134]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax], 0
jmp 0x100460ad
mov edx, dword [esp + 0x7c]
mov dword [edx + 8], ecx
mov ecx, dword [edx]
mov edx, dword [ecx + 0x14c]
test edx, edx
mov dword [esp + 4], edx
je 0x100460e8
mov edi, dword [esp + 4]
mov esi, dword [ecx + 0xc]
mov edx, dword [ecx + 8]
dec edi
mov ebx, esi
add edi, edx
adc ebx, 0
jb 0x100460e8
sub edi, edx
mov dword [esp + 0x130], ecx
sbb ebx, esi
mov dword [esp + 0x138], edi
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x144], esi
mov dword [esp + 0x140], edx
mov dword [esp + 0x148], eax
mov esi, dword [esp + 0x7c]
xor ebx, ebx
mov edx, dword [ecx + 0x24]
mov eax, dword [ecx + 0x20]
mov edi, dword [esi + 4]
test edx, edx
setne bl
xor ecx, ecx
shl ebx, 6
or ebx, 3
test eax, eax
mov esi, dword [edi + 0x6c]
mov dword [esp + 0x9c], 4
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 4
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
cmovne ebx, ecx
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 4]
mov dword [esp + 0xc0], edx
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
movdqu xmm0, xmmword [edi + 0x5c]
lea edi, [esp + 0x138]
movdqu xmmword [esp + 0xd4], xmm0
mov dword [esp + 0xe4], esi
pxor xmm0, xmm0
lea esi, [esp + 0x160]
nop dword [eax + eax]
test bl, 1
jne 0x1004597d
mov eax, dword [esp + 0xc8]
cmp eax, dword [esp + 0xd4]
jne 0x10044995
or ebx, 9
mov dword [esp + 0xb4], ebx
jmp 0x10044970
mov ecx, dword [esp + 0xe0]
mov edx, edi
mov edi, dword [esp + 0xc4]
mov eax, esi
movdqa xmmword [esp + 0x160], xmm0
mov dword [esp + 0x170], 0
mov esi, edx
mov dword [esp + 4], ecx
lea ecx, [esp + 0x18]
push 0x14
push eax
mov dword [esp + 0x50], edi
push edi
call fcn.10018420
add esp, 0xc
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x10045c4a
cmp dword [esp + 0x20], 0x14
jne 0x100449f2
mov eax, dword [esp + 0x1c]
xor edx, edx
mov edi, esi
jmp 0x10044a28
lea ecx, [esp + 0x18]
mov edx, esi
push 0x14
lea edi, [esp + 0x164]
push edi
push dword [esp + 0x50]
call fcn.10018780
add esp, 0xc
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x10045c4a
mov eax, edi
mov edx, 0x101
lea edi, [esp + 0x138]
movdqu xmm0, xmmword [eax]
mov eax, dword [eax + 0x10]
mov esi, dword [esp + 4]
mov dword [esp + 0x58], 1
mov dword [esp + 0x5c], 0
mov dword [esp + 0x30], 1
mov dword [esp + 0x34], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x38], 0
test eax, eax
mov dword [esp + 0x78], eax
movdqa xmmword [esp + 0x1b0], xmm0
je 0x10044c64
mov dword [esp + 0x3c], edx
pshufd xmm0, xmm0, 0xff
sub esp, 0xc
lea eax, [esp + 0x64]
lea ecx, [esp + 0x90]
mov edx, edi
mov dword [esp + 4], esi
movd dword [esp], xmm0
mov dword [esp + 8], eax
call fcn.100179f0
add esp, 0xc
movzx ecx, byte [esp + 0x84]
movzx eax, byte [esp + 0x85]
cmp cl, 3
jne 0x10045d66
mov edi, dword [esp + 0x5c]
mov edx, 0x200
mov ecx, 0x10
cmp edi, esi
mov esi, dword [esp + 0x58]
cmove edx, ecx
test al, al
mov eax, 0
lea ecx, [esp + 0x30]
cmovne edx, eax
mov dword [esp + 8], edx
mov edx, esi
push edi
call fcn.1002cb20
add esp, 4
cmp al, 8
jne 0x10045db6
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
movdqa xmm5, xmmword [0x3e16380]
movdqa xmm6, xmmword [0x3e16390]
movdqa xmm7, xmmword [0x3e163a0]
mov dword [esp + 4], eax
cmp edx, esi
mov eax, esi
cmovb eax, edx
test eax, eax
je 0x10044cba
mov edi, dword [esp + 4]
cmp eax, 8
mov ecx, edi
jb 0x10044c97
xor ecx, ecx
cmp eax, 0x20
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], eax
jb 0x10044c0a
movdqa xmm5, xmmword [0x3e16350]
movdqa xmm6, xmmword [0x3e16360]
movdqa xmm7, xmmword [0x3e16370]
mov ecx, eax
add edi, 0x10
and ecx, 0xffffffe0
mov esi, ecx
nop word cs:[eax + eax]
movdqu xmm1, xmmword [edi - 0x10]
movdqu xmm0, xmmword [edi]
movdqa xmm2, xmm1
movdqa xmm3, xmm0
paddb xmm2, xmm5
paddb xmm3, xmm5
movdqa xmm4, xmm2
pminub xmm4, xmm6
pcmpeqb xmm4, xmm2
movdqa xmm2, xmm3
pminub xmm2, xmm6
pand xmm4, xmm7
pcmpeqb xmm2, xmm3
por xmm4, xmm1
pand xmm2, xmm7
movdqu xmmword [edi - 0x10], xmm4
por xmm2, xmm0
movdqu xmmword [edi], xmm2
add edi, 0x20
add esi, 0xffffffe0
jne 0x10044b80
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
movdqa xmm5, xmmword [0x3e16380]
movdqa xmm6, xmmword [0x3e16390]
movdqa xmm7, xmmword [0x3e163a0]
cmp eax, ecx
je 0x10044cba
test al, 0x18
je 0x10044c8d
mov edi, dword [esp + 4]
mov eax, dword [esp + 0xc]
mov esi, edi
mov edi, eax
and edi, 0xfffffff8
add esi, ecx
sub ecx, edi
nop word cs:[eax + eax]
nop
movq xmm0, qword [esi]
movdqa xmm1, xmm0
paddb xmm1, xmm5
movdqa xmm2, xmm1
pmaxub xmm2, xmm6
pcmpeqb xmm2, xmm1
pandn xmm2, xmm7
por xmm2, xmm0
movq qword [esi], xmm2
add esi, 8
add ecx, 8
jne 0x10044c20
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
cmp eax, edi
je 0x10044cba
add edi, dword [esp + 4]
mov ecx, edi
mov edi, dword [esp + 4]
jmp 0x10044c97
pxor xmm1, xmm1
mov ecx, edx
pcmpeqd xmm0, xmm1
or ecx, 0x80
movmskps eax, xmm0
cmp eax, 0xf
cmovne edx, ecx
mov ecx, 1
xor eax, eax
mov esi, edx
xor edx, edx
jmp 0x10044de6
mov edi, dword [esp + 4]
mov eax, dword [esp + 0xc]
add ecx, edi
add eax, edi
mov edi, eax
nop dword [eax + eax]
movzx eax, byte [ecx]
mov ah, al
add ah, 0xbf
cmp ah, 0x1a
setb ah
shl ah, 5
or ah, al
mov byte [ecx], ah
inc ecx
cmp ecx, edi
jne 0x10044ca0
cmp edx, 4
jb 0x10044cfc
mov eax, dword [esp + 4]
lea edi, [esp + 0x138]
cmp dword [eax + edx - 4], 0x6c6c642e
jne 0x10044d03
lea eax, [edx - 4]
mov ecx, edx
nop dword [eax]
cmp ecx, esi
mov edi, esi
cmovb esi, ecx
test esi, esi
lea esi, [ecx - 1]
cmovne ecx, esi
cmovne edx, esi
mov esi, edi
cmp ecx, eax
ja 0x10044ce0
mov dword [esp + 0x34], edx
lea edi, [esp + 0x138]
mov eax, dword [esp + 8]
lea ecx, [esp + 0x30]
or dword [esp + 0x3c], eax
call fcn.1002c320
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
cmp edx, 8
jae 0x10044d44
test edx, edx
je 0x10045683
xor eax, eax
nop dword [eax + eax]
cmp byte [ecx + eax], 0x5c
je 0x10044ddd
inc eax
cmp edx, eax
jne 0x10044d30
jmp 0x10044ded
lea eax, [ecx + 3]
and eax, 0xfffffffc
sub eax, ecx
je 0x10044d75
cmp eax, edx
cmovae eax, edx
test eax, eax
je 0x10044d75
xor esi, esi
cmp byte [ecx + esi], 0x5c
je 0x10044ddd
inc esi
cmp eax, esi
jne 0x10044d59
lea esi, [edx - 8]
cmp eax, esi
mov dword [esp + 4], esi
jbe 0x10044d80
jmp 0x10044dc4
lea eax, [edx - 8]
mov dword [esp + 4], eax
xor eax, eax
nop
mov edi, dword [ecx + eax]
mov esi, edi
xor edi, 0x5c5c5c5c
not esi
add edi, 0xfefefeff
and edi, esi
test edi, 0x80808080
jne 0x10044dc4
mov esi, dword [ecx + eax + 4]
mov edi, esi
xor esi, 0x5c5c5c5c
not edi
add esi, 0xfefefeff
and esi, edi
test esi, 0x80808080
jne 0x10044dc4
add eax, 8
cmp eax, dword [esp + 4]
jbe 0x10044d80
lea edi, [esp + 0x138]
cmp edx, eax
je 0x10044ded
nop
cmp byte [ecx + eax], 0x5c
je 0x10044ddd
inc eax
cmp edx, eax
jne 0x10044dd0
jmp 0x10044ded
mov esi, dword [esp + 0x3c]
mov eax, 0xa
bts esi, eax
mov dword [esp + 0x3c], esi
call section..rdata
movaps xmm0, xmmword [esp + 0x1b0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x24]
mov edx, dword [esp + 0x78]
movups xmmword [esp + 0x108], xmm0
movsd xmm0, qword [esp + 0x58]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x118], edx
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [esp + 0x30]
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
movsd xmm0, qword [esp + 0x18]
movq xmm1, qword [esp + 0x20]
movsd qword [esp + 0xe8], xmm0
movq xmm0, qword [esp + 0x28]
movq qword [esp + 0xf0], xmm1
mov eax, dword [esp + 0xe8]
movq qword [esp + 0xf8], xmm0
test eax, eax
je 0x10045de0
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xf4]
movq xmm1, qword [esp + 0xec]
test edx, edx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xfc]
movdqa xmmword [esp + 0x180], xmm1
mov dword [esp + 0x74], eax
lea eax, [esp + 0xec]
movsd xmm0, qword [eax + 0x20]
mov eax, dword [eax + 0x28]
movsd qword [esp + 0x190], xmm0
mov dword [esp + 0x198], eax
je 0x1004560b
movdqa xmm0, xmmword [esp + 0x1b0]
mov eax, dword [esp + 0x130]
mov dword [esp + 0x44], 0
mov dword [esp + 0x50], 0
movd ecx, xmm0
movzx eax, word [eax + 0xf8]
movd xmm0, edx
test ecx, ecx
cmove ecx, edx
movd xmm1, ecx
punpckldq xmm1, xmm0
mov word [esp + 0x9a], ax
movdqa xmmword [esp + 0x1a0], xmm1
cmp byte [esp + 0x44], 0
jne 0x1004568a
movzx esi, word [esp + 0x9a]
movdqa xmm0, xmmword [esp + 0x1a0]
cmp esi, 0x20b
movd eax, xmm0
jne 0x10044f8a
lea ecx, [esp + 0x18]
mov edx, edi
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
push 8
lea ebx, [esp + 0x88]
push ebx
push eax
call fcn.10018420
add esp, 0xc
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test edx, edx
je 0x10044fe8
movq xmm0, qword [esp + 0x20]
mov al, 2
mov dword [esp + 0x68], edx
jmp 0x1004504d
lea ecx, [esp + 0x18]
mov edx, edi
mov dword [esp + 0x84], 0
push 4
lea ebx, [esp + 0x88]
push ebx
push eax
call fcn.10018420
add esp, 0xc
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test edx, edx
jne 0x10045c85
cmp dword [esp + 0x20], 4
jne 0x10044fd7
mov edx, dword [ecx]
movdqa xmm0, xmmword [esp + 0x150]
mov al, 3
jmp 0x1004505b
movdqa xmm0, xmmword [esp + 0x150]
mov edx, dword [esp + 0x40]
xor eax, eax
jmp 0x1004505b
cmp dword [esp + 0x20], 8
jne 0x10045037
mov edx, dword [ecx + 4]
mov ebx, dword [ecx]
movdqa xmm0, xmmword [esp + 0x150]
mov eax, edx
mov ecx, ebx
mov dword [esp + 0x68], ebx
xor ebx, ebx
mov dword [esp + 0x120], edx
and eax, 0x7fffffff
and ecx, 0x80000000
or ecx, eax
mov ecx, edx
mov edx, dword [esp + 0x68]
setne bl
and ecx, 0x80000000
shl ebx, 7
and edx, 0x7fffffff
or edx, ecx
jmp 0x10045065
mov edx, dword [esp + 0x68]
movdqa xmm0, xmmword [esp + 0x150]
mov ecx, dword [esp + 0x120]
xor eax, eax
mov dword [esp + 0x120], ecx
mov dword [esp + 0x174], ecx
xor ebx, ebx
cmp al, 3
jne 0x10045669
test edx, edx
movdqa xmmword [esp + 0x150], xmm0
mov dword [esp + 0x40], edx
je 0x100450c7
js 0x100450d6
mov dword [esp + 8], ebx
mov ebx, esi
lea ecx, [esp + 0x18]
mov esi, edx
mov word [esp + 0x84], 0
mov edx, edi
push 2
lea eax, [esp + 0x88]
push eax
push esi
call fcn.10018420
add esp, 0xc
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
test ecx, ecx
jne 0x10045cb4
cmp dword [esp + 0x20], 2
jne 0x100450f7
movzx eax, word [eax]
mov word [esp + 0x98], ax
jmp 0x10045105
mov dword [esp + 8], ebx
mov ax, 2
mov bl, 1
jmp 0x100451b4
mov eax, edx
and eax, 0xffff0000
cmp eax, 0x80000000
mov eax, 0x80
cmovne ebx, eax
mov ax, 1
mov dword [esp + 8], ebx
jmp 0x100451b0
add dword [esp + 8], 0x10000
mov al, 1
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x40]
mov edx, edi
mov esi, ebx
lea edi, [esp + 0x30]
mov dword [esp + 0x30], 1
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
lea ecx, [esp + 0x84]
add eax, 2
push edi
push dword [esp + 0xe8]
push eax
call fcn.100179f0
add esp, 0xc
movzx eax, byte [esp + 0x84]
cmp al, 3
jne 0x10045d0c
cmp byte [esp + 0x85], 0
mov edx, dword [esp + 0x34]
jne 0x1004518d
mov ecx, dword [esp + 0x44]
cmp edx, dword [esp + 0xe4]
mov eax, 1
mov edi, 0x20
movzx ecx, cl
cmovne ecx, eax
mov eax, 0x10000
cmove eax, edi
mov dword [esp + 0x44], ecx
or dword [esp + 8], eax
mov ecx, dword [esp + 0x30]
call section..rdata
movq xmm0, qword [esp + 0x30]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0xc], eax
xor eax, eax
movq qword [esp + 0x58], xmm0
mov dword [esp + 0x60], ecx
mov ebx, dword [esp + 0x44]
xor ecx, ecx
cmp esi, 0x20b
pshufd xmm0, xmmword [esp + 0x1a0], 0x55
mov edi, dword [esp + 8]
movzx ebx, bl
sete cl
lea esi, [ecx*4 + 4]
mov ecx, dword [esp + 0x130]
mov dword [esp + 0x17c], esi
mov edx, dword [ecx + 0x14c]
mov ecx, 0
sub edx, esi
movd esi, xmm0
movq xmm0, qword [esp + 0x58]
cmovb edx, ecx
mov ecx, edi
mov dword [esp + 0x178], esi
or ecx, 0x1000
cmp esi, edx
mov edx, dword [esp + 0x60]
lea esi, [esp + 0xec]
cmovbe ecx, edi
movq qword [esi], xmm0
mov dword [esi + 8], edx
mov edx, 1
cmova ebx, edx
or dword [esp + 0x50], ecx
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
cmp ax, 2
mov dword [esp + 0x44], ebx
mov dword [esp + 0xf8], edx
mov dword [esp + 0xfc], ecx
je 0x10045699
mov ecx, dword [esp + 0xf4]
mov esi, dword [esp + 0xec]
mov edi, eax
test di, di
mov dword [esp + 0x128], ecx
je 0x10045276
movzx eax, dx
jmp 0x10045284
mov edx, dword [esp + 0xf0]
mov ecx, esi
call section..rdata
mov ecx, dword [esp + 0xac]
mov dword [esp + 0xc], eax
mov dword [esp + 0x124], esi
mov dword [esp + 0x12c], edi
test ecx, ecx
mov dword [esp + 0x14], ecx
je 0x1004530b
mov eax, dword [esp + 0xa8]
xor edi, edi
mov dword [esp + 0x10], ecx
mov dword [esp + 8], eax
mov eax, ecx
jmp 0x100452c8
mov dword [esp + 0x10], eax
sub eax, edi
jbe 0x1004530d
shr eax, 1
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 8]
xor edx, edx
add eax, edi
mov esi, eax
shl esi, 4
cmp dword [ecx + esi + 0xc], ebx
mov esi, 0xff
setne dl
cmovb edx, esi
cmp dl, 1
je 0x100452c0
movzx edx, dl
cmp edx, 0xff
jne 0x100453e3
inc eax
mov edi, eax
mov eax, dword [esp + 0x10]
sub eax, edi
ja 0x100452c8
jmp 0x1004530d
xor edi, edi
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 4]
mov dword [esp + 0xe8], 4
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
inc esi
mov dword [esp + 0xf4], eax
je 0x10045c30
cmp esi, dword [esp + 0xb0]
jbe 0x10045382
mov ecx, esi
call fcn.1004daa0
mov edx, esi
cmp eax, esi
jbe 0x1004536e
lea ecx, [esp + 0xa8]
mov edx, eax
call fcn.1002c7e0
mov edx, esi
cmp al, 8
je 0x10045382
lea ecx, [esp + 0xa8]
call fcn.1002c7e0
cmp al, 8
jne 0x10045c30
mov ebx, dword [esp + 0xac]
mov eax, ebx
sub eax, edi
jb 0x10046101
mov edx, dword [esp + 0xa8]
mov esi, edi
shl eax, 4
shl esi, 4
lea ecx, [edx + esi]
mov dword [esp + 8], edx
lea edx, [edx + esi + 0x10]
push eax
push ecx
push edx
call 0x10056480
mov ecx, dword [esp + 0x14]
add esp, 0xc
movq xmm0, qword [esp + 0xe8]
movq xmm1, qword [esp + 0xf0]
inc ebx
movq qword [ecx + esi], xmm0
movq qword [ecx + esi + 8], xmm1
mov dword [esp + 0xac], ebx
jmp 0x100453ed
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 8]
mov edi, eax
mov edx, dword [esp + 0xb0]
cmp ebx, edx
cmovb edx, ebx
cmp edi, edx
jae 0x100460b5
shl edi, 4
mov edx, dword [ecx + edi + 4]
lea eax, [ecx + edi]
mov dword [esp + 0x14], eax
test edx, edx
mov dword [esp + 0x54], edx
je 0x1004547b
mov eax, dword [ecx + edi]
xor edi, edi
mov ecx, edx
mov dword [esp + 0x10], edx
mov dword [esp + 8], eax
jmp 0x10045438
mov dword [esp + 0x10], ecx
sub ecx, edi
jbe 0x1004547d
shr ecx, 1
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 8]
xor ebx, ebx
add ecx, edi
mov esi, ecx
shl esi, 4
cmp dword [edx + esi + 0xc], eax
mov esi, 0xff
setne bl
cmovb ebx, esi
cmp bl, 1
je 0x10045430
movzx esi, bl
cmp esi, 0xff
jne 0x10045522
inc ecx
mov edi, ecx
mov ecx, dword [esp + 0x10]
sub ecx, edi
ja 0x10045438
jmp 0x1004547d
xor edi, edi
mov ecx, dword [esp + 0x54]
inc ecx
je 0x10045c77
mov esi, dword [esp + 0x14]
cmp ecx, dword [esi + 8]
jbe 0x100454c8
mov esi, ecx
call fcn.1004daa0
mov edx, esi
cmp eax, esi
jbe 0x100454b3
mov ecx, dword [esp + 0x14]
mov edx, eax
call fcn.1002c7e0
mov edx, esi
mov esi, dword [esp + 0x14]
cmp al, 8
je 0x100454c8
mov ecx, dword [esp + 0x14]
call fcn.1002c7e0
mov esi, dword [esp + 0x14]
cmp al, 8
jne 0x10045e3f
mov edx, dword [esi + 4]
mov eax, edx
sub eax, edi
jb 0x10045c7e
mov ebx, dword [esi]
mov esi, edi
shl eax, 4
mov dword [esp + 0x54], edx
shl esi, 4
lea ecx, [ebx + esi]
lea edx, [ebx + esi + 0x10]
push eax
push ecx
push edx
call 0x10056480
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esp + 0xc]
mov dword [ebx + esi], 4
mov dword [ebx + esi + 4], 0
mov dword [ebx + esi + 8], 0
mov dword [ebx + esi + 0xc], eax
mov eax, dword [esp + 0x54]
inc eax
mov dword [ecx + 4], eax
jmp 0x1004552c
mov edi, ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x54]
mov edx, dword [ecx + 8]
cmp eax, edx
cmovb edx, eax
cmp edi, edx
jae 0x100460be
mov esi, dword [ecx]
shl edi, 4
mov ebx, dword [esi + edi + 4]
inc ebx
je 0x10045e77
add esi, edi
cmp ebx, dword [esi + 8]
jbe 0x1004557c
mov ecx, ebx
call fcn.1004daa0
cmp eax, ebx
jbe 0x1004556b
mov ecx, esi
mov edx, eax
call fcn.1002cf70
cmp al, 8
je 0x1004557c
mov ecx, esi
mov edx, ebx
call fcn.1002cf70
cmp al, 8
jne 0x10045e77
movd xmm0, dword [esp + 0x17c]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x178]
movdqa xmm1, xmmword [esp + 0x1a0]
cmp word [esp + 0x12c], 0
lea edi, [esp + 0x138]
pshufd xmm0, xmm0, 0x50
mov dword [eax + ecx*4], edx
lea eax, [ecx + 1]
paddd xmm1, xmm0
mov dword [esi + 4], eax
movdqa xmmword [esp + 0x1a0], xmm1
jne 0x10044f16
mov edx, 1
mov ecx, 1
push dword [esp + 0x128]
call fcn.1001b720
add esp, 4
test eax, eax
je 0x10044f16
mov ecx, dword [0x3e1e000]
push edx
push eax
push dword [esp + 0x12c]
push 0x3e1d260
call dword [ecx + 0x10]
add esp, 0x10
jmp 0x10044f16
or ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x48]
movdqa xmm0, xmmword [esp + 0x150]
mov edx, dword [esp + 0x40]
mov dword [esp + 0xb4], ebx
inc dword [esp + 0xc8]
add ecx, 0x14
jb 0x10046126
mov dword [esp + 0xc4], ecx
mov eax, dword [esp + 0xb8]
add eax, dword [esp + 0xbc]
jb 0x100456ef
cmp ecx, eax
jne 0x100456ef
or ebx, 4
mov dword [esp + 0xb4], ebx
jmp 0x100456ef
movzx ecx, al
test ecx, ecx
jne 0x10045c41
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
or eax, 0x20000
jmp 0x100456aa
xor edx, edx
jmp 0x10044ded
movdqa xmm0, xmmword [esp + 0x150]
mov edx, dword [esp + 0x40]
jmp 0x100456a2
movdqa xmm0, xmmword [esp + 0x150]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x3c]
or ebx, eax
mov eax, dword [esp + 0xc4]
or ebx, dword [esp + 0xb4]
cmp eax, ecx
mov dword [esp + 0xb4], ebx
jne 0x1004617e
inc dword [esp + 0xc8]
add ecx, 0x14
jb 0x10046126
cmp dword [esp + 0x78], 0
mov dword [esp + 0xc4], ecx
je 0x1004563e
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0xac]
movdqa xmmword [esp + 0x150], xmm0
test edx, edx
mov dword [esp + 0x10], edx
je 0x1004576b
mov eax, dword [esp + 0xa8]
xor edi, edi
mov ecx, edx
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
jmp 0x10045728
mov dword [esp + 0xc], ecx
sub ecx, edi
jbe 0x1004576d
shr ecx, 1
mov eax, dword [esp + 4]
mov edx, dword [esp + 8]
xor ebx, ebx
add ecx, edi
mov esi, ecx
shl esi, 4
cmp dword [edx + esi + 0xc], eax
mov esi, 0xff
setne bl
cmovb ebx, esi
cmp bl, 1
je 0x10045720
movzx esi, bl
cmp esi, 0xff
jne 0x10045843
inc ecx
mov edi, ecx
mov ecx, dword [esp + 0xc]
sub ecx, edi
ja 0x10045728
jmp 0x1004576d
xor edi, edi
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 4]
mov dword [esp + 0xe8], 4
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
inc esi
mov dword [esp + 0xf4], eax
je 0x10045e02
cmp esi, dword [esp + 0xb0]
jbe 0x100457e2
mov ecx, esi
call fcn.1004daa0
mov edx, esi
cmp eax, esi
jbe 0x100457ce
lea ecx, [esp + 0xa8]
mov edx, eax
call fcn.1002c7e0
mov edx, esi
cmp al, 8
je 0x100457e2
lea ecx, [esp + 0xa8]
call fcn.1002c7e0
cmp al, 8
jne 0x10045e02
mov esi, dword [esp + 0xac]
mov eax, esi
sub eax, edi
jb 0x10046101
mov edx, dword [esp + 0xa8]
mov ebx, edi
shl eax, 4
shl ebx, 4
lea ecx, [edx + ebx]
mov dword [esp + 4], edx
lea edx, [edx + ebx + 0x10]
push eax
push ecx
push edx
call 0x10056480
add esp, 0xc
movq xmm0, qword [esp + 0xe8]
movq xmm1, qword [esp + 0xf0]
mov eax, dword [esp + 4]
inc esi
movq qword [eax + ebx], xmm0
movq qword [eax + ebx + 8], xmm1
mov dword [esp + 0xac], esi
jmp 0x10045849
mov esi, dword [esp + 0x10]
mov edi, ecx
mov edx, dword [esp + 0xb0]
cmp esi, edx
cmovb edx, esi
cmp edi, edx
jae 0x100460b5
mov esi, dword [esp + 0xa0]
inc esi
je 0x10045e0e
cmp esi, dword [esp + 0xa4]
jbe 0x100458a7
mov ecx, esi
call fcn.1004daa0
cmp eax, esi
jbe 0x10045891
lea ecx, [esp + 0x9c]
mov edx, eax
call fcn.1002d440
cmp al, 8
je 0x100458a7
lea ecx, [esp + 0x9c]
mov edx, esi
call fcn.1002d440
cmp al, 8
jne 0x10045e0e
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0x9c]
movaps xmm0, xmmword [esp + 0x1b0]
mov edi, dword [esp + 0x78]
lea edx, [ecx + ecx*4]
inc ecx
movss dword [eax + edx*4], xmm0
movsd xmm0, qword [esp + 0x190]
movsd qword [eax + edx*4 + 4], xmm0
pshufd xmm0, xmmword [esp + 0x180], 0x55
mov esi, dword [esp + 0x198]
mov dword [eax + edx*4 + 0xc], esi
mov dword [eax + edx*4 + 0x10], edi
mov dword [esp + 0xa0], ecx
sub esp, 4
mov ecx, 1
mov edx, 1
movd dword [esp], xmm0
call fcn.1001b720
add esp, 4
test eax, eax
je 0x1004592e
mov ecx, dword [0x3e1e000]
push edx
push eax
push dword [esp + 0x74]
push 0x3e1d260
call dword [ecx + 0x10]
add esp, 0x10
mov edx, 1
mov ecx, 1
push dword [esp + 0x74]
call fcn.1001b720
add esp, 4
test eax, eax
lea esi, [esp + 0x160]
lea edi, [esp + 0x138]
je 0x1004596d
mov ecx, dword [0x3e1e000]
push edx
push eax
push dword [esp + 0x78]
push 0x3e1d260
call dword [ecx + 0x10]
add esp, 0x10
mov ebx, dword [esp + 0xb4]
pxor xmm0, xmm0
jmp 0x10044970
lea eax, [esp + 0xa8]
mov esi, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa0]
mov edi, dword [esp + 0xa4]
mov edx, dword [esp + 0xa8]
movsd xmm1, qword [eax + 0x10]
movsd xmm2, qword [eax + 0x20]
movq xmm0, qword [eax + 8]
test esi, esi
movsd qword [esp + 0x1d0], xmm1
movsd xmm1, qword [eax + 0x18]
movsd qword [esp + 0x1e0], xmm2
movq xmm2, qword [eax + 0x30]
movq qword [esp + 0x1c8], xmm0
movsd qword [esp + 0x1d8], xmm1
movsd xmm1, qword [eax + 0x28]
movq qword [esp + 0x1f0], xmm2
movsd qword [esp + 0x1e8], xmm1
movq xmm1, qword [eax + 0x38]
mov eax, dword [esp + 0xac]
movq qword [esp + 0x1f8], xmm1
je 0x10045ba0
movsd xmm2, qword [esp + 0x1f0]
movsd xmm1, qword [esp + 0x1e8]
movq xmm0, qword [esp + 0x1f8]
mov ebx, dword [esp + 0x134]
movsd qword [esp + 0x23c], xmm2
movsd qword [esp + 0x234], xmm1
movsd xmm2, qword [esp + 0x1e0]
movsd xmm1, qword [esp + 0x1d8]
movq qword [esp + 0x244], xmm0
movsd qword [esp + 0x22c], xmm2
movsd qword [esp + 0x224], xmm1
movq xmm2, qword [esp + 0x1c8]
movq xmm1, qword [esp + 0x1d0]
movq qword [esp + 0x21c], xmm1
movq qword [esp + 0x214], xmm2
mov dword [esp + 0x200], esi
mov dword [esp + 0x204], ecx
mov dword [esp + 0x208], edi
mov dword [esp + 0x20c], edx
mov dword [esp + 0x210], eax
cmp dword [ebx], 0
je 0x10045bb1
mov ecx, 0x3e1ae20
mov edx, 6
mov dword [esp + 8], edi
mov dword [esp + 4], esi
call fcn.1001cfa0
test eax, eax
mov esi, 1
mov ecx, 0x3e1ae58
mov edx, 0x12
cmove eax, esi
mov dword [esp + 0xc], eax
call fcn.1001cfa0
test eax, eax
lea ebx, [0x3e1ade5]
lea edi, [0x3e1ade6]
mov ecx, 0xfffffff9
cmove eax, esi
xor esi, esi
mov dword [esp + 0x10], eax
xor eax, eax
nop word cs:[eax + eax]
nop
movzx edx, byte [ebx]
mov ebx, edi
mov dh, dl
add dh, 0xd0
cmp dh, 0xa
jb 0x10045b45
or dl, 0x20
mov dh, dl
add dh, 0x9f
cmp dh, 6
jae 0x100460cf
add dl, 0xa9
mov dh, dl
mov edi, eax
movzx edx, dh
shl edi, 4
or edx, edi
lea edi, [ebx + 1]
test ecx, ecx
cmove edi, ebx
je 0x10045b64
shld esi, eax, 4
inc ecx
test ebx, ebx
mov eax, edx
jne 0x10045b20
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0xc]
xor edx, 0x60
mov dword [eax], ecx
mov ecx, dword [esp + 0x10]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov dword [eax + 0xc], 0
call fcn.1002dff0
lea ecx, [esp + 0x20c]
call fcn.1002ddb0
jmp 0x100460ad
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp + 0xc], ecx
jmp 0x10045fdb
mov ecx, 0x3e1ade4
mov edx, 0x60
mov dword [ebx], 0xffffffff
call fcn.1001bdd0
mov edx, dword [esp + 0x80]
mov ecx, dword [edx]
test ecx, ecx
je 0x10045bf0
mov esi, dword [esp + 0x7c]
mov edx, dword [esi + 0x14]
call fcn.1002dff0
add esi, 0x18
mov ecx, esi
call fcn.1002ddb0
mov edx, dword [esp + 0x80]
lea esi, [esp + 0x200]
mov ecx, 0x13
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx]
lea ecx, [eax + 1]
cmp ecx, 0x7fffffff
mov dword [ebx], ecx
jae 0x1004613f
add eax, 2
mov dword [ebx], eax
cmp dword [edx], 0
je 0x10046165
mov eax, dword [esp + 0x4c]
mov dword [eax + 4], edx
mov dword [eax + 8], ebx
jmp 0x1004482a
lea ecx, [esp + 0xe8]
call fcn.1002c8e0
jmp 0x10045e77
mov ecx, dword [esp + 0x174]
jmp 0x10045c8d
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], edx
mov dword [esp + 0xf8], ecx
mov dword [esp + 0xf4], esi
jmp 0x10045de0
mov bl, 7
jmp 0x10045e41
mov bl, 8
jmp 0x10045e41
movq xmm0, qword [esp + 0x20]
mov al, 2
mov byte [esp + 0x160], al
mov dword [esp + 0x164], edx
lea edx, [esp + 0x160]
mov dword [esp + 0x168], ecx
movq qword [esp + 0x16c], xmm0
jmp 0x10045cde
movq xmm0, qword [esp + 0x20]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
movzx eax, word [esp + 0x98]
lea edx, [esp + 0x18]
movq qword [esp + 0x24], xmm0
mov byte [esp + 0x18], 2
mov word [esp + 0x1a], ax
lea ecx, [esp + 0xec]
call fcn.100486e0
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xf8]
mov esi, dword [esp + 0xf4]
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
jmp 0x10045ec1
movzx edx, word [esp + 0x96]
movq xmm0, qword [esp + 0x8e]
movq xmm1, qword [esp + 0x86]
movzx ecx, byte [esp + 0x85]
mov word [esp + 0x2a], dx
movq qword [esp + 0x22], xmm0
movq qword [esp + 0x1a], xmm1
mov byte [esp + 0x18], al
mov byte [esp + 0x19], cl
lea edx, [esp + 0x18]
lea ecx, [esp + 0xec]
call fcn.100486e0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
call fcn.1002dfb0
jmp 0x10045cea
movzx edx, word [esp + 0x96]
movq xmm0, qword [esp + 0x86]
movq xmm1, qword [esp + 0x8e]
mov word [esp + 0x2a], dx
movq qword [esp + 0x22], xmm1
movq qword [esp + 0x1a], xmm0
mov byte [esp + 0x18], cl
lea edx, [esp + 0x18]
lea ecx, [esp + 0xec]
mov byte [esp + 0x19], al
call fcn.100486e0
mov esi, dword [esp + 0x58]
mov ecx, 1
xor edx, edx
jmp 0x10045dd0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
mov dword [esp + 0xec], 0
mov byte [esp + 0xf0], al
call fcn.1002dfb0
mov edx, dword [esp + 0x60]
mov ecx, esi
call fcn.1002dfb0
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xf8]
mov esi, dword [esp + 0xf4]
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
jmp 0x10045f35
lea ecx, [esp + 0xe8]
call fcn.1002c8e0
pshufd xmm0, xmmword [esp + 0x180], 0x55
mov ecx, dword [esp + 0x6c]
movd edx, xmm0
call fcn.1002dfb0
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
call fcn.1002dfb0
mov dword [esp + 0xc], 0
jmp 0x10045f35
mov ebx, eax
mov edx, 4
mov ecx, 4
push 0
call fcn.1001b720
add esp, 4
test eax, eax
je 0x10045e6e
mov ecx, dword [0x3e1e000]
push edx
push eax
push 4
push 0x3e1d260
call dword [ecx + 0x10]
add esp, 0x10
cmp bl, 8
je 0x10046197
cmp word [esp + 0x12c], 0
mov dword [esp + 0xc], 0
jne 0x10045ec1
mov edx, 1
mov ecx, 1
push dword [esp + 0x128]
call fcn.1001b720
add esp, 4
test eax, eax
je 0x10045ec1
mov ecx, dword [0x3e1e000]
push edx
push eax
push dword [esp + 0x12c]
push 0x3e1d260
call dword [ecx + 0x10]
add esp, 0x10
movdqa xmm0, xmmword [esp + 0x180]
pshufd xmm0, xmm0, 0x55
sub esp, 4
mov ecx, 1
mov edx, 1
movd dword [esp], xmm0
call fcn.1001b720
add esp, 4
test eax, eax
je 0x10045f04
mov ecx, dword [0x3e1e000]
push edx
push eax
push dword [esp + 0x74]
push 0x3e1d260
call dword [ecx + 0x10]
add esp, 0x10
mov edx, 1
mov ecx, 1
push dword [esp + 0x74]
call fcn.1001b720
add esp, 4
test eax, eax
je 0x10045f35
mov ecx, dword [0x3e1e000]
push edx
push eax
push dword [esp + 0x78]
push 0x3e1d260
call dword [ecx + 0x10]
add esp, 0x10
mov edx, 4
mov dword [esp + 4], esi
mov ecx, 0x14
push dword [esp + 0xa4]
call fcn.1001b720
add esp, 4
test eax, eax
je 0x10045f70
mov ecx, dword [0x3e1e000]
push edx
push eax
push dword [esp + 0xa4]
push 0x3e1d260
call dword [ecx + 0x10]
add esp, 0x10
mov edi, dword [esp + 0xac]
mov ebx, dword [esp + 0xb0]
mov eax, dword [esp + 0xa8]
cmp edi, ebx
mov dword [esp + 0x10], eax
cmovae edi, ebx
test edi, edi
je 0x10045fad
mov esi, dword [esp + 0x10]
nop word cs:[eax + eax]
mov ecx, esi
call fcn.1002c8e0
add esi, 0x10
dec edi
jne 0x10045fa0
mov edx, 4
mov ecx, 0x10
push ebx
call fcn.1001b720
add esp, 4
test eax, eax
je 0x10045fdb
mov ecx, dword [0x3e1e000]
push edx
push eax
push dword [esp + 0x18]
push 0x3e1d260
call dword [ecx + 0x10]
add esp, 0x10
xor ebx, ebx
lea edx, [0x3e1ade5]
lea edi, [0x3e1ade6]
mov eax, 0xfffffff9
xor esi, esi
movzx ecx, byte [edx]
mov edx, edi
mov ch, cl
add ch, 0xd0
cmp ch, 0xa
jb 0x10046015
or cl, 0x20
mov ch, cl
add ch, 0x9f
cmp ch, 6
jae 0x100460cf
add cl, 0xa9
mov ch, cl
mov edi, ebx
movzx ecx, ch
shl edi, 4
or ecx, edi
lea edi, [edx + 1]
test eax, eax
cmove edi, edx
je 0x10046034
shld esi, ebx, 4
inc eax
test edx, edx
mov ebx, ecx
jne 0x10045ff0
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 4]
xor ecx, 0x5b
xor ebx, ebx
mov esi, 0x3e1aa96
test eax, eax
cmove edx, ecx
mov ecx, dword [esp + 8]
sete bl
mov dword [esp + 4], edx
mov edx, 0xa
cmove ecx, eax
mov eax, 0x3e1aa8c
mov dword [esp + 8], ecx
mov ecx, 0x3e1aa9f
cmove esi, eax
add ebx, 9
call fcn.1001cfa0
mov edi, eax
test eax, eax
mov eax, 1
mov ecx, esi
mov edx, ebx
cmove edi, eax
call fcn.1001cfa0
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 4]
mov edx, dword [esp + 8]
test eax, eax
mov ecx, 1
cmove eax, ecx
mov dword [ebx], edi
mov dword [ebx + 4], eax
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, edi
push 0x3e1af5c
jmp 0x100460c5
mov ecx, edi
push 0x3e1af3c
call fcn.10018ae0
add esp, 4
ud2
mov ecx, 0x3e1beb4
mov edx, 0xe
push 0x3e17700
call fcn.100194a0
add esp, 4
ud2
mov ecx, 0x3e1d3e4
mov edx, 0x2b
push 0x3e1ae38
call fcn.100194a0
add esp, 4
ud2
lea ecx, [esp + 0xe8]
call fcn.1002c8e0
mov ecx, 0x3e1d3e4
mov edx, 0x2b
push 0x3e1af6c
call fcn.100194a0
add esp, 4
ud2
mov ecx, 0x3e1d3e4
mov edx, 0x2b
push 0x3e1aedc
call fcn.100194a0
add esp, 4
ud2
mov ecx, 0x3e1ba43
mov edx, 0x18
push 0x3e1ae48
push 0x3e1aebc
lea eax, [esp + 0xa4]
push eax
call fcn.10019cf0
add esp, 0xc
ud2
mov ecx, 0x3e1d3e4
mov edx, 0x2b
push 0x3e1ae6c
call fcn.100194a0
add esp, 4
ud2
mov ecx, 0x3e1aeec
mov edx, 0x3e
push 0x3e1af2c
call fcn.100194a0
add esp, 4
ud2
mov ecx, 0x3e1d3e4
mov edx, 0x2b
push 0x3e1af4c
call fcn.100194a0
add esp, 4
ud2