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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xec
mov eax, dword [0x56e00c]
xor eax, esp
mov dword [esp + 0xe8], eax
mov eax, edx
mov edx, ecx
mov dword [esp + 4], eax
push ebx
push esi
mov esi, dword [edx]
lea eax, [eax + eax*8]
lea eax, [eax + 0x5c]
mov dword [esp + 0x58], edx
lea ebx, [edx + eax*8]
mov dword [esp + 0x2c], esi
mov eax, dword [ebx + 0x38]
lea ecx, [edx + 0x148]
mov dword [esp + 0x5c], eax
movzx eax, byte [ebx + 0x24]
mov dword [esp + 0x50], ecx
mov ecx, dword [esi]
mov dword [esp + 0x74], ecx
lea ecx, [eax + eax*4]
mov dword [esp + 0x18], ebx
mov eax, dword [edx + 4]
mov edx, dword [edx + 0x44]
add eax, 8
shl ecx, 4
add eax, ecx
mov dword [esp + 0x10], eax
push edi
mov edi, dword [esi + 8]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x38], eax
xor eax, eax
mov dword [esp + 0x6c], edi
test edx, edx
jle 0x480ee8
mov ecx, dword [esp + 0x5c]
add ecx, 0x48
nop word [eax + eax]
mov esi, dword [esp + 0x38]
cmp dword [ecx], esi
mov esi, dword [esp + 0x30]
je 0x4810d1
inc eax
add ecx, 4
cmp eax, edx
jl 0x480ed0
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
not ecx
not edx
and ecx, dword [ebp + 8]
and edx, dword [ebp + 0xc]
mov dword [ebx + 0x40], ecx
mov ecx, dword [esp + 0x5c]
mov dword [ebx + 0x44], edx
mov eax, dword [ecx + 0x18]
mov edx, dword [ecx + 0x1c]
mov ecx, dword [esp + 0x10]
call fcn.0051f860
and eax, 1
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x60]
test byte [eax + 0x24], 0x40
je 0x480f3f
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x28], 1
test byte [eax + 0x22], 0x20
je 0x480f47
mov dword [esp + 0x28], 0
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x68], ecx
mov edx, dword [ecx + 0x6c]
mov dword [esp + 0x74], edx
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea eax, [edx - 1]
test edx, eax
jne 0x480fa7
mov eax, dword [ecx + 0x70]
mov ecx, dword [ecx]
mov dword [esp + 0x20], eax
lea eax, [edx*8 + 4]
mov edx, dword [esp + 0x20]
push eax
mov dword [esp + 0x54], ecx
call fcn.004249a0
add esp, 4
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x480f9c
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x50]
call fcn.004246f0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x74]
mov dword [ecx + 0x70], eax
mov eax, dword [ecx + 0x70]
test eax, eax
je 0x480fb5
mov dword [eax + edx*4], 0xffffffff
or eax, 0xffffffff
sub eax, edx
mov dword [ebx + 0x10], eax
mov dword [ebx + 0xc], eax
mov ecx, dword [edi + 0x18]
mov dword [esp + 0xc], eax
mov dword [esp + 0x68], ecx
mov edx, dword [ecx + 0x6c]
mov dword [esp + 0x74], edx
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea eax, [edx - 1]
test edx, eax
jne 0x481024
mov eax, dword [ecx + 0x70]
mov ecx, dword [ecx]
mov dword [esp + 0x20], eax
lea eax, [edx*8 + 4]
mov edx, dword [esp + 0x20]
push eax
mov dword [esp + 0x54], ecx
call fcn.004249a0
add esp, 4
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x481019
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x50]
call fcn.004246f0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x74]
mov dword [ecx + 0x70], eax
mov eax, dword [ecx + 0x70]
test eax, eax
je 0x481032
mov dword [eax + edx*4], 0xffffffff
mov ecx, dword [esp + 0x14]
or eax, 0xffffffff
sub eax, edx
cmp byte [ebx + 0x24], 0
mov dword [esp + 0x74], eax
mov dword [ebx + 0x18], eax
jbe 0x48106d
test byte [ecx + 0x24], 8
je 0x48106d
mov eax, dword [esi + 0x48]
mov edx, 0x19
inc eax
mov ecx, edi
push eax
mov dword [esi + 0x48], eax
push 0
mov dword [ebx], eax
call fcn.00440520
mov ecx, dword [esp + 0x1c]
add esp, 8
test byte [ecx + 0x28], 4
je 0x48110c
mov eax, dword [ecx + 0x1c]
mov esi, dword [edi + 0x20]
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], esi
jg 0x48109b
mov ecx, edi
call fcn.00440370
test eax, eax
jne 0x4810eb
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x28]
mov word [eax + ecx*4], 0x14
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4810ef
xor ecx, ecx
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
jmp 0x480ef9
mov edx, dword [esp + 0x10]
push dword [esp + 0xc]
mov ecx, edi
push edx
mov edx, 0x16
call fcn.00440520
add esp, 8
mov byte [ebx + 0x25], 0x10
jmp 0x482080
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 0x24]
test eax, 0x400
je 0x481372
movzx eax, word [edx + 0x28]
inc dword [esi + 0x64]
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x14], eax
add eax, 2
mov dword [esp + 0xc], eax
mov edi, dword [esp + 0xc]
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x18], eax
cmp edi, ecx
jg 0x481152
add eax, edi
sub ecx, edi
mov dword [esi + 0x38], ecx
mov ecx, dword [esp + 0x18]
mov dword [esi + 0x3c], eax
jmp 0x481161
mov eax, dword [esi + 0x48]
lea ecx, [eax + 1]
add eax, edi
mov dword [esp + 0x18], ecx
mov dword [esi + 0x48], eax
mov eax, dword [ebx + 0xc]
xor esi, esi
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x14], esi
jle 0x4811c7
mov edi, dword [esp + 0x30]
mov eax, dword [edx + 0x2c]
mov edx, dword [eax + esi*4]
test edx, edx
je 0x4811b4
lea eax, [ecx + 2]
mov ecx, edi
add eax, esi
test byte [edx + 0x12], 1
push eax
je 0x4811a7
push dword [esp + 0x4c]
push esi
push ebx
call fcn.00480290
mov eax, dword [ebx + 0x10]
add esp, 0x10
mov dword [esp + 0x10], eax
jmp 0x4811b4
mov edx, dword [edx]
mov edx, dword [edx + 0x10]
call fcn.00455680
add esp, 4
mov edx, dword [esp + 0x60]
inc esi
mov ecx, dword [esp + 0x18]
cmp esi, dword [esp + 0x14]
jl 0x481178
mov edi, dword [esp + 0x6c]
mov eax, dword [edx + 0x18]
mov esi, dword [edi + 0x20]
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], esi
jg 0x4811e4
mov ecx, edi
call fcn.00440370
test eax, eax
jne 0x481218
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x18]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
cmp dword [eax + 0x54], esi
jg 0x48122e
mov ecx, edi
call fcn.00440370
test eax, eax
jne 0x481262
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x20]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x14]
mov dword [ecx + 0xc], 0
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x18]
inc eax
mov dword [ecx + 0x10], 0
mov dword [ecx + 8], eax
mov esi, dword [esp + 0x60]
mov eax, 0xfffffffe
mov edx, dword [edi + 0x20]
mov ecx, 0xfffffff5
mov dword [esp + 0x28], edx
cmp byte [esi + 0x1c], 0
cmovne eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 0x50], eax
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], edx
jg 0x4812a7
mov ecx, edi
call fcn.00440370
test eax, eax
je 0x4812a3
mov edx, 1
jmp 0x4812df
mov edx, dword [esp + 0x28]
mov eax, dword [edi + 4]
lea ecx, [edx + edx*4]
inc dword [edi + 0x20]
mov ebx, dword [esp + 0x38]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x10]
mov dword [eax + ecx*4 + 8], ebx
mov ebx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 0xc], ebx
mov ebx, dword [esp + 0x1c]
mov word [eax + ecx*4], 0xe
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x20]
mov ecx, edi
push dword [esp + 0x54]
call fcn.00440c10
mov byte [esi + 0x1c], 0
add esp, 8
xor esi, esi
cmp dword [esp + 0x14], esi
jle 0x48132c
mov edi, dword [esp + 0x60]
cmp esi, 0x10
jge 0x481328
mov ax, word [edi + 0x1e]
mov cx, si
shr ax, cl
test al, 1
je 0x481321
mov edx, dword [edi + 0x2c]
mov ecx, ebx
mov edx, dword [edx + esi*4]
call fcn.004801c0
inc esi
cmp esi, dword [esp + 0x14]
jl 0x481301
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x38]
push dword [esp + 0xc]
mov esi, dword [esp + 0x34]
mov ecx, esi
mov edx, dword [esp + 0x1c]
mov byte [ebx + 0x25], 0x97
mov dword [ebx + 0x28], eax
mov eax, dword [edi + 0x20]
mov dword [ebx + 0x2c], eax
call fcn.00453e30
mov eax, dword [esp + 0x10]
add esp, 4
cmp eax, dword [esi + 0x38]
jle 0x481366
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 0x3c], eax
mov ecx, esi
call fcn.00453e90
jmp 0x482083
test al, 5
setne cl
bt eax, 8
setb al
test al, cl
je 0x481418
mov eax, dword [edx + 0x2c]
mov ecx, esi
mov edx, dword [eax]
inc dword [esi + 0x48]
mov eax, dword [esi + 0x48]
push eax
push dword [esp + 0x4c]
mov dword [esp + 0x30], eax
push 0
push ebx
call fcn.00480290
mov edx, dword [esp + 0x38]
add esp, 0x10
mov dword [esp + 0xc], eax
cmp eax, edx
je 0x4813be
mov ecx, esi
call fcn.00456b80
mov eax, dword [esp + 0xc]
mov esi, dword [ebx + 0x10]
mov edx, 0x26
push esi
push eax
mov ecx, edi
call fcn.00440520
push dword [esp + 0x14]
mov edx, 0x43
mov ecx, edi
push esi
push dword [esp + 0x48]
call fcn.004403f0
mov edx, dword [esp + 0x20]
add esp, 0x14
mov ecx, dword [esp + 0x30]
push 1
call fcn.00453e30
mov edx, dword [esp + 0x3c]
add esp, 4
mov ecx, dword [esp + 0x30]
push dword [esp + 0xc]
push 0xffffffffffffffff
call fcn.00453ce0
add esp, 8
mov byte [ebx + 0x25], 0x9c
jmp 0x482083
mov ecx, dword [edx + 0x24]
mov eax, ecx
and eax, 0x102
cmp eax, 0x102
jne 0x481611
xor esi, esi
mov dword [esp + 0x34], 0x9c
mov dword [esp + 0x20], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], esi
test cl, 0x20
je 0x481465
mov eax, dword [edx + 0x2c]
mov dword [esp + 0x10], 1
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
test cl, 0x10
je 0x481478
mov eax, dword [edx + 0x2c]
mov esi, dword [esp + 0x10]
mov esi, dword [eax + esi*4]
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x48]
test eax, eax
je 0x481496
mov eax, dword [esp + 0x1c]
mov ecx, esi
mov esi, eax
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x48]
mov dword [esp + 0x14], esi
jmp 0x48149a
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x48150d
mov esi, dword [ecx]
lea eax, [esp + 0x28]
mov ecx, dword [esp + 0x30]
push eax
mov dword [esp + 0x44], 0x3d3b3c3e
mov edx, dword [esi + 0x10]
call fcn.00455480
mov ecx, dword [esp + 0x70]
add esp, 4
mov edi, eax
movzx eax, byte [esi]
push edi
push dword [esp + 0x10]
movzx edx, byte [esp + eax - 8]
push dword [esp + 0x40]
call fcn.004403f0
mov ecx, dword [esp + 0x3c]
add esp, 0xc
mov edx, edi
push 1
call fcn.00453e30
mov ecx, dword [esp + 0x34]
add esp, 4
mov edx, dword [esp + 0x28]
call fcn.00456b80
mov edx, dword [esp + 0x1c]
mov ecx, ebx
call fcn.004801c0
mov edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x14]
jmp 0x48152e
push dword [esp + 0xc]
test eax, eax
mov ecx, 0x66
push dword [esp + 0x3c]
mov edx, 0x69
cmovne edx, ecx
mov ecx, edi
call fcn.00440520
add esp, 8
test esi, esi
je 0x48158f
mov eax, dword [esp + 0x30]
mov esi, dword [esi]
inc dword [eax + 0x48]
mov ecx, dword [eax + 0x48]
mov edx, dword [esi + 0x10]
mov dword [esp + 0x20], ecx
push ecx
mov ecx, eax
call fcn.00455680
mov al, byte [esi]
add esp, 4
cmp al, 0x52
je 0x48156e
cmp al, 0x50
je 0x48156e
mov ecx, dword [esp + 0x48]
xor eax, eax
test ecx, ecx
setne al
lea eax, [eax*2 + 0x50]
jmp 0x481580
mov ecx, dword [esp + 0x48]
xor eax, eax
test ecx, ecx
sete al
lea eax, [eax*2 + 0x51]
mov edx, dword [esp + 0x14]
mov ecx, ebx
mov dword [esp + 0x34], eax
call fcn.004801c0
cmp dword [esp + 0x48], 0
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x38]
sete al
add al, 8
mov dword [ebx + 0x28], edx
cmp dword [esp + 0x34], 0x9c
mov byte [ebx + 0x25], al
mov dword [ebx + 0x2c], ecx
je 0x482083
mov eax, dword [esp + 0x30]
mov ecx, edi
inc dword [eax + 0x48]
mov esi, dword [eax + 0x48]
push esi
push edx
mov edx, 0x64
call fcn.00440520
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x38]
push esi
push 0xffffffffffffffff
call fcn.00453ce0
mov edx, dword [esp + 0x44]
mov ecx, edi
push esi
push dword [esp + 0x20]
push dword [esp + 0x38]
call fcn.004403f0
mov ecx, dword [edi + 4]
add esp, 0x1c
test ecx, ecx
je 0x482083
mov eax, dword [edi + 0x20]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], 0x6b
jmp 0x482083
test ecx, 0x200
je 0x481b7d
mov esi, dword [ebx + 8]
movzx ecx, word [edx + 0x18]
mov eax, dword [edx + 0x1c]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x34], 0
mov dword [esp + 0x14], 0
test byte [esi + 0x22], 1
mov esi, dword [esp + 0x30]
mov dword [esp + 0x44], 0
mov byte [esp + 0x7f], 0
mov byte [esp + 0x4c], 0
mov byte [esp + 0x5b], 0
mov dword [esp + 0x40], eax
je 0x481689
mov esi, dword [esp + 0x5c]
cmp byte [esi + 0x24], 0
mov esi, dword [esp + 0x30]
jle 0x481689
cmp word [eax + 0x32], cx
jbe 0x481689
mov byte [esp + 0x4c], 1
mov dword [esp + 0x44], 1
mov eax, dword [edx + 0x24]
movzx ecx, cx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], ecx
test al, 0x20
je 0x4816b7
mov eax, dword [edx + 0x2c]
mov dword [esp + 0x44], 1
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x34], eax
lea eax, [ecx + 1]
mov dword [esp + 0x10], eax
mov eax, dword [edx + 0x24]
test al, 0x10
je 0x481714
cmp dword [esp + 0x34], 0
mov eax, dword [edx + 0x2c]
mov edx, dword [esp + 0x10]
mov eax, dword [eax + edx*4]
mov edx, 1
mov dword [esp + 0x14], eax
jne 0x481718
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 4]
movsx eax, word [eax + ecx*2]
test eax, eax
js 0x481718
mov ebx, dword [esp + 0x4c]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x40]
movzx ebx, bl
mov dword [esp + 0x4c], ebx
mov ebx, edx
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0x14], 0
mov eax, dword [esp + 0x4c]
cmove eax, ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
jmp 0x481718
mov edx, dword [esp + 0x44]
lea eax, [esp + 0x70]
mov ecx, esi
push eax
push edx
push dword [esp + 0x50]
mov edx, ebx
call fcn.00480470
mov edx, dword [esp + 0x24]
add esp, 0xc
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x70]
test eax, eax
je 0x481745
mov al, byte [eax + edx]
mov byte [esp + 0x7f], al
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x40]
movzx ecx, word [eax + 0x32]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x24]
cmp cx, word [esp + 0x10]
jae 0x4817a5
mov eax, dword [eax + 0x1c]
xor ecx, ecx
cmp byte [edx + eax], cl
mov eax, dword [esp + 0x48]
sete cl
cmp eax, ecx
je 0x481785
mov ecx, dword [esp + 0x24]
test eax, eax
je 0x4817ab
cmp word [esp + 0x10], cx
jne 0x4817ab
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov cl, byte [esp + 0x4c]
mov byte [esp + 0x5b], cl
xor cl, cl
mov dword [esp + 0x34], eax
mov dword [esp + 0x4c], ecx
jmp 0x4817b3
mov eax, dword [esp + 0x48]
jmp 0x48177a
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4817c5
test byte [eax + 0x12], 0x28
mov dword [esp + 0x20], 0
je 0x4817cd
mov dword [esp + 0x20], 1
cmp dword [esp + 0x14], 0
mov ebx, dword [esp + 0x1c]
je 0x4817ee
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x10], 0
test byte [ebx + 0x12], 0x28
mov ebx, dword [esp + 0x1c]
je 0x4817f6
mov dword [esp + 0x10], 1
test eax, eax
jne 0x481935
cmp word [esp + 0x24], ax
ja 0x481935
mov dword [esp + 0x50], eax
mov dword [esp + 0x24], edx
test cl, cl
je 0x481845
mov eax, dword [esp + 0x64]
mov ecx, edi
add eax, edx
mov edx, 0x1c
push eax
push 0
call fcn.00440520
add esp, 8
mov dword [esp + 0x20], 0
mov dword [esp + 0x50], 1
mov ecx, dword [esp + 0x4c]
inc dword [esp + 0x24]
push dword [esp + 0x70]
mov edx, dword [esp + 0x68]
movzx eax, cl
mov ecx, dword [esp + 0x28]
sub ecx, eax
push ecx
mov ecx, esi
call fcn.00480210
mov ecx, dword [esp + 0x28]
push dword [esp + 0x2c]
mov eax, dword [esp + 0x5c]
push dword [esp + 0x70]
push dword [esp + 0x54]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x5c]
push dword [esp + 0x20]
movzx edx, byte [ecx + eax*2 + 0x5531b4]
mov ecx, edi
call fcn.004406b0
mov eax, dword [esp + 0x2c]
add esp, 0x18
test eax, eax
je 0x4819d8
mov eax, dword [eax]
mov ecx, esi
push 1
mov eax, dword [eax + 0x10]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x1c]
add eax, dword [esp + 0x68]
mov edx, eax
mov dword [esp + 0x24], eax
call fcn.00453e30
mov edx, dword [esp + 0x28]
add esp, 4
mov ecx, esi
push dword [esp + 0x20]
call fcn.00455680
mov ecx, dword [esp + 0x28]
add esp, 4
call fcn.00452d60
test eax, eax
je 0x4818f4
push dword [esp + 0x44]
mov edx, 0x4c
mov ecx, edi
push dword [esp + 0x24]
call fcn.00440520
add esp, 8
mov dl, byte [esp + 0x7f]
mov ecx, dword [esp + 0x24]
call fcn.00451340
cmp al, 0x62
je 0x481a01
mov dl, byte [esp + 0x7f]
mov ecx, dword [esp + 0x24]
call fcn.00452d90
test eax, eax
jne 0x481a01
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x7f]
push eax
push 1
mov ecx, esi
call fcn.00480210
jmp 0x4819fe
mov dword [esp + 0x50], 1
mov dword [esp + 0x24], edx
test eax, eax
je 0x481811
mov eax, dword [eax]
mov ecx, dword [esp + 0x64]
add ecx, edx
mov dword [esp + 0x3c], ecx
mov eax, dword [eax + 0x10]
mov edx, eax
push ecx
mov ecx, esi
mov dword [esp + 0x6c], eax
call fcn.00455680
mov ecx, dword [esp + 0x6c]
add esp, 4
call fcn.00452d60
test eax, eax
je 0x48198d
push dword [esp + 0x44]
mov edx, 0x4c
mov ecx, edi
push dword [esp + 0x40]
call fcn.00440520
add esp, 8
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x48183d
mov eax, dword [esp + 0x18]
add eax, ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x3c], eax
mov dl, byte [eax]
call fcn.00451340
cmp al, 0x62
mov eax, dword [esp + 0x3c]
jne 0x4819b9
mov byte [eax], 0x62
mov dl, byte [eax]
mov ecx, dword [esp + 0x68]
call fcn.00452d90
test eax, eax
je 0x48183d
mov eax, dword [esp + 0x3c]
mov byte [eax], 0x62
jmp 0x48183d
cmp byte [esp + 0x5b], 0
je 0x481a05
mov eax, dword [esp + 0x18]
mov edx, 0x1c
add eax, dword [esp + 0x64]
mov ecx, edi
push eax
push 0
call fcn.00440520
mov dword [esp + 0x18], 0
add esp, 8
inc dword [esp + 0x18]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x78]
call fcn.004246f0
mov eax, dword [edi + 0x20]
mov dword [ebx + 0x2c], eax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x481a47
mov ecx, dword [esp + 0x10]
push eax
push dword [esp + 0x68]
mov eax, dword [esp + 0x50]
push dword [esp + 0x4c]
push dword [esp + 0x18]
movzx edx, byte [ecx + eax*2 + str.qonp]
mov ecx, edi
call fcn.004406b0
add esp, 0x10
mov edx, dword [esp + 0x34]
mov ecx, ebx
call fcn.004801c0
mov edx, dword [esp + 0x14]
mov ecx, ebx
call fcn.004801c0
cmp dword [esp + 0x28], 0
jne 0x481b3b
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0xc]
test byte [ecx + 0x2c], 0x20
jne 0x481ab5
inc dword [esi + 0x48]
mov edx, 0x6d
mov esi, dword [esi + 0x48]
mov ecx, edi
push esi
push dword [esp + 0x10]
call fcn.00440520
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x38]
push esi
push 0xffffffffffffffff
call fcn.00453ce0
push esi
push dword [esp + 0x4c]
mov edx, 0x3f
mov ecx, edi
call fcn.00440520
add esp, 0x18
jmp 0x481b3b
call fcn.0045aed0
mov ecx, esi
mov dword [esp + 0x10], eax
movzx edx, word [eax + 0x32]
call fcn.00456bc0
mov ecx, eax
xor edx, edx
mov eax, dword [esp + 0x10]
xor esi, esi
mov dword [esp + 0x28], ecx
cmp dx, word [eax + 0x32]
jae 0x481b1e
mov ebx, eax
nop
lea eax, [esi + ecx]
mov ecx, dword [esp + 0x40]
push eax
mov eax, dword [ebx + 4]
mov dx, word [eax + esi*2]
call fcn.0045aef0
cwde
mov edx, 0x2e
push eax
push dword [esp + 0x14]
mov ecx, edi
call fcn.004403f0
movzx eax, word [ebx + 0x32]
inc esi
mov ecx, dword [esp + 0x34]
add esp, 0xc
cmp esi, eax
jl 0x481ae0
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 0x32]
mov edx, 0x41
push eax
push ecx
push dword [esp + 0x7c]
mov ecx, edi
push dword [esp + 0x44]
call fcn.004406b0
add esp, 0x10
mov ecx, dword [esp + 0x60]
test dword [ecx + 0x24], 0x1000
je 0x481b4e
mov byte [ebx + 0x25], 0x9c
jmp 0x481b5b
cmp dword [esp + 0x48], 0
sete al
add al, 8
mov byte [ebx + 0x25], al
mov eax, dword [esp + 0xc]
mov dword [ebx + 0x28], eax
mov al, byte [ecx + 0x26]
and al, 1
mov byte [ebx + 0x26], al
test byte [ecx + 0x24], 0xf
jne 0x482083
mov byte [ebx + 0x27], 1
jmp 0x482083
test ecx, 0x2000
je 0x482041
mov eax, dword [esi + 0x44]
mov ecx, edi
inc dword [esi + 0x48]
mov dword [esp + 0x24], eax
inc eax
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x48]
mov dword [esp + 0x40], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
call fcn.00440720
mov ecx, dword [esp + 0x20]
xor edx, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x50], 0
mov dword [esp + 0xc], edx
mov eax, dword [eax + 0x2c]
mov eax, dword [eax]
mov dword [esp + 0x60], eax
mov eax, dword [eax + 0xc]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x5c]
mov byte [ebx + 0x25], 0x12
mov dword [ebx + 0x28], ecx
mov cl, byte [eax + 0x29]
cmp cl, 1
jbe 0x481cdc
movzx eax, cl
sub eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x78]
dec eax
mov dword [esp + 0x28], eax
lea edx, [eax + eax*4]
shl edx, 4
add edx, 0x58
call fcn.00424920
mov ecx, eax
mov dword [esp + 0x34], ecx
test ecx, ecx
jne 0x481c41
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xe8]
xor ecx, esp
call fcn.0048cd50
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x28]
mov al, dl
inc al
movzx eax, al
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
movups xmm0, xmmword [eax]
movups xmmword [ecx + 8], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ecx + 0x18], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [ecx + 0x28], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [ecx + 0x38], xmm0
movups xmm0, xmmword [eax + 0x40]
mov eax, dword [esp + 0x5c]
movups xmmword [ecx + 0x48], xmm0
mov eax, dword [eax + 4]
add eax, 8
mov dword [esp + 0x3c], eax
cmp edx, 1
jl 0x481ce3
lea eax, [ebx + 0x6c]
add ecx, 0x58
mov ebx, eax
movzx eax, byte [ebx]
lea ebx, [ebx + 0x48]
lea ecx, [ecx + 0x50]
lea eax, [eax + eax*4]
shl eax, 4
add eax, dword [esp + 0x3c]
movups xmm0, xmmword [eax]
movups xmmword [ecx - 0x50], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ecx - 0x40], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [ecx - 0x30], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [ecx - 0x20], xmm0
movups xmm0, xmmword [eax + 0x40]
movups xmmword [ecx - 0x10], xmm0
sub edx, 1
jne 0x481c97
mov ebx, dword [esp + 0x1c]
jmp 0x481ce3
mov eax, dword [eax + 4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x5c]
test byte [eax + 0x22], 8
jne 0x481d11
mov eax, dword [esi + 0x48]
mov edx, 0x1c
inc eax
push eax
push 0
mov dword [esp + 0x6c], eax
lea ecx, [eax + 1]
mov dword [esp + 0x70], ecx
mov dword [esi + 0x48], ecx
mov ecx, edi
call fcn.00440520
add esp, 8
push dword [esp + 0x20]
mov edx, 0x19
mov ecx, edi
push 0
call fcn.00440520
mov dword [esp + 0x54], eax
add esp, 8
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 0xc]
cmp ecx, 1
jle 0x481dea
xor edx, edx
mov dword [esp + 0x28], edx
test ecx, ecx
jle 0x481dea
xor ecx, ecx
mov esi, eax
mov dword [esp + 0x3c], ecx
xor ebx, ebx
mov eax, dword [esi + 0x14]
add eax, ecx
mov edi, dword [eax]
mov dword [esp + 0x44], edi
cmp eax, dword [esp + 0x60]
je 0x481da7
test byte [edi + 4], 1
jne 0x481da7
test byte [eax + 0x14], 0x12
jne 0x481da7
mov edi, 0xfff
test word [eax + 0x12], di
je 0x481da7
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x78]
push 0
push 0
call fcn.00451fa0
mov ecx, dword [esp + 0x80]
mov edx, ebx
push eax
call fcn.00451a80
mov ecx, dword [esp + 0x48]
add esp, 0xc
mov edx, dword [esp + 0x28]
mov ebx, eax
inc edx
add ecx, 0x30
mov dword [esp + 0x28], edx
mov dword [esp + 0x3c], ecx
cmp edx, dword [esi + 0xc]
jl 0x481d52
mov edi, dword [esp + 0x6c]
mov ecx, ebx
mov esi, dword [esp + 0x30]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x1c]
test ecx, ecx
je 0x481dec
push 0
push ecx
push 0
mov edx, 0x48
mov ecx, esi
call fcn.00451920
mov ecx, eax
add esp, 0xc
mov dword [esp + 0xc], ecx
jmp 0x481dec
xor ecx, ecx
mov edx, dword [esp + 0x70]
xor eax, eax
mov dword [esp + 0x44], eax
cmp dword [edx + 0xc], eax
jle 0x481f66
mov dword [esp + 0x1c], 1
mov dword [esp + 0x28], 0x200
nop
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [edx + 0x14]
mov edx, dword [esp + 0x38]
cmp dword [eax + 8], edx
je 0x481e30
mov edx, dword [esp + 0x28]
test word [eax + 0x12], dx
je 0x481f48
mov eax, dword [eax]
test ecx, ecx
je 0x481e41
test byte [eax + 4], 1
jne 0x481e41
mov dword [ecx + 0xc], eax
mov eax, ecx
push dword [esp + 0x24]
mov edx, dword [esp + 0x38]
mov ecx, esi
push 0xf0
push 0
push 0
push eax
call fcn.00485240
add esp, 0x14
mov dword [esp + 0x3c], eax
test eax, eax
je 0x481f48
movzx ecx, byte [ebx + 0x24]
mov edx, dword [esp + 0x34]
push 0
push ecx
push dword [esp + 0x18]
lea ecx, [eax + 0x2e0]
push ecx
mov ecx, esi
call fcn.00480c10
mov eax, dword [esp + 0x6c]
add esp, 0x10
test byte [eax + 0x22], 8
jne 0x481ee7
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x30]
push 0
mov eax, dword [eax + 0xc]
push dword [esp + 0x6c]
dec eax
push dword [esp + 0x40]
cmp esi, eax
mov eax, 0xffffffff
push eax
cmove esi, eax
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x10]
call fcn.004540d0
push esi
push eax
mov eax, dword [edi + 0x20]
mov edx, 0x7f
add eax, 2
mov ecx, edi
push eax
push dword [esp + 0x80]
call fcn.004406b0
mov esi, dword [esp + 0x50]
add esp, 0x20
push dword [esp + 0x18]
mov edx, 0x11
mov ecx, edi
push dword [esp + 0x24]
call fcn.00440520
mov ecx, dword [esp + 0x44]
add esp, 8
mov eax, dword [esp + 0x50]
cmp byte [ecx + 0x27], 0
cmovne eax, dword [esp + 0x1c]
mov dword [esp + 0x50], eax
mov eax, dword [ecx + 0x318]
test dword [eax + 0x24], 0x200
je 0x481f3b
cmp dword [esp + 0x44], 0
je 0x481f32
mov edx, dword [esp + 0x40]
cmp dword [eax + 0x1c], edx
jne 0x481f3b
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x40], eax
jmp 0x481f43
mov dword [esp + 0x40], 0
call fcn.00485ba0
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x70]
inc eax
mov dword [esp + 0x44], eax
cmp eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0xc]
jl 0x481e10
mov eax, dword [esp + 0x40]
mov dword [ebx + 0x30], eax
test eax, eax
je 0x481f78
mov eax, dword [esp + 0x24]
mov dword [ebx + 8], eax
mov edx, dword [esp + 0xc]
test edx, edx
je 0x481f90
mov ecx, dword [esp + 0x78]
mov dword [edx + 0xc], 0
call fcn.00451e60
mov edx, dword [edi + 0x20]
mov eax, dword [esp + 0x4c]
cmp edx, eax
jbe 0x481fa5
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov dword [eax + ecx*4 + 4], edx
mov eax, dword [ebx + 0xc]
mov esi, dword [edi + 0x20]
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], esi
jg 0x481fc2
mov ecx, edi
call fcn.00440370
test eax, eax
jne 0x481ff6
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x28]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [edi + 0x18]
or esi, 0xffffffff
sub esi, dword [esp + 0x18]
js 0x48200f
mov ecx, dword [edx + 0x70]
test ecx, ecx
je 0x48200f
mov eax, dword [edi + 0x20]
mov dword [ecx + esi*4], eax
mov eax, dword [edi + 0x20]
dec eax
mov dword [edx + 0x58], eax
mov eax, dword [esp + 0x5c]
cmp byte [eax + 0x29], 1
jbe 0x48202d
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x78]
call fcn.004246f0
cmp dword [esp + 0x50], 0
jne 0x482083
mov edx, dword [esp + 0x60]
mov ecx, ebx
call fcn.004801c0
jmp 0x482083
mov eax, dword [esp + 0x14]
test byte [eax + 0x28], 8
je 0x482051
mov byte [ebx + 0x25], 0x9c
jmp 0x482083
mov ecx, dword [esp + 0x48]
push dword [esp + 0xc]
mov al, byte [ecx + 0x5544d4]
movzx edx, byte [ecx + 0x5551b8]
mov ecx, edi
mov byte [ebx + 0x25], al
mov eax, dword [esp + 0x3c]
push eax
mov dword [ebx + 0x28], eax
call fcn.00440520
add esp, 8
mov byte [ebx + 0x27], 1
inc eax
mov dword [ebx + 0x2c], eax
mov eax, dword [esp + 0x54]
mov edx, dword [eax + 0xc]
mov esi, dword [eax + 0x14]
mov dword [esp + 0x28], edx
test edx, edx
jle 0x4820f7
mov edi, dword [esp + 0x30]
nop dword [eax]
test byte [esi + 0x14], 6
jne 0x4820e7
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [ebx + 0x40]
and eax, dword [ebx + 0x44]
or ecx, eax
je 0x4820c0
mov eax, dword [esp + 0x5c]
mov byte [eax + 0x27], 1
jmp 0x4820e7
cmp dword [ebx], 0
mov eax, dword [esi]
je 0x4820cd
test byte [eax + 4], 1
je 0x4820e7
push 8
push dword [esp + 0x78]
mov edx, eax
mov ecx, edi
call fcn.00455fb0
mov edx, dword [esp + 0x30]
add esp, 8
or byte [esi + 0x14], 4
dec edx
add esi, 0x30
mov dword [esp + 0x28], edx
test edx, edx
jg 0x4820a0
mov edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x54]
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x14]
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jle 0x482231
mov edi, dword [esp + 0x1c]
mov ecx, 0x402
nop word [eax + eax]
test byte [eax + 0x14], 6
jne 0x482219
cmp word [eax + 0x12], cx
jne 0x482219
mov edx, dword [esp + 0x38]
cmp dword [eax + 8], edx
jne 0x482219
cmp dword [ebx], 0
jne 0x482219
mov ecx, dword [eax]
xor edi, edi
push edi
push 3
push dword [eax + 0xc]
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x8c]
push edx
mov edx, esi
call fcn.0047e350
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4821a4
mov edx, dword [esi + 0x20]
mov ecx, edx
mov eax, dword [esi + 0x24]
and ecx, dword [ebp + 8]
and eax, dword [ebp + 0xc]
or ecx, eax
jne 0x482192
or edx, dword [esi + 0x24]
jne 0x48218d
test byte [esi + 0x12], 2
jne 0x4821a6
test edi, edi
cmove edi, esi
lea ecx, [esp + 0x80]
call fcn.0047e0b0
mov esi, eax
test esi, esi
jne 0x482170
mov esi, edi
test esi, esi
je 0x482208
test byte [esi + 0x14], 4
jne 0x482208
mov ecx, dword [esp + 0x78]
mov edx, 0x30
call fcn.00424920
mov edi, eax
test edi, edi
je 0x482208
mov ecx, dword [esi]
mov edx, edi
mov eax, dword [esp + 0x28]
push 8
push dword [esp + 0x78]
movups xmm0, xmmword [ecx]
movups xmmword [edi], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edi + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
mov ecx, dword [esp + 0x38]
movups xmmword [edi + 0x20], xmm0
mov eax, dword [eax + 0xc]
mov dword [edi + 0xc], eax
call fcn.00455fb0
mov ecx, dword [esp + 0x80]
add esp, 8
mov edx, edi
call fcn.004246f0
mov esi, dword [esp + 0x54]
mov ecx, 0x402
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
dec edi
add eax, 0x30
mov dword [esp + 0x1c], edi
mov dword [esp + 0xc], eax
test edi, edi
jg 0x482120
mov edi, dword [esp + 0x6c]
mov eax, dword [ebx]
mov dword [esp + 0x28], eax
test eax, eax
je 0x4822f1
mov eax, dword [edi + 0x20]
mov dword [ebx + 0x1c], eax
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
cmp dword [eax + 0x54], esi
jg 0x48225b
mov ecx, edi
call fcn.00440370
test eax, eax
jne 0x48228f
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x28]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 0x30]
mov ecx, edi
call fcn.00454180
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x54]
mov esi, dword [edx + 0x14]
xor edx, edx
mov dword [esp + 0x28], edx
cmp dword [eax + 0xc], edx
jle 0x4822f1
test byte [esi + 0x14], 6
jne 0x4822e4
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [ebx + 0x40]
and eax, dword [ebx + 0x44]
or ecx, eax
jne 0x4822e0
mov edx, dword [esi]
mov ecx, edi
push 8
push dword [esp + 0x78]
call fcn.00455fb0
mov edx, dword [esp + 0x30]
add esp, 8
or byte [esi + 0x14], 4
mov eax, dword [esp + 0x54]
inc edx
add esi, 0x30
mov dword [esp + 0x28], edx
cmp edx, dword [eax + 0xc]
jl 0x4822b0
mov eax, dword [ebx + 0x40]
mov edx, dword [ebx + 0x44]
mov ecx, dword [esp + 0xf4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0048cd50
mov esp, ebp
pop ebp
ret