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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xa8
mov eax, dword [0x549944]
xor eax, esp
mov dword [esp + 0xa4], eax
xor eax, eax
mov dword [esp + 0xc], ecx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x44], eax
movups xmm0, xmmword [esi]
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], eax
mov eax, dword [ecx]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x30]
movups xmmword [esp + 0x50], xmm0
mov dword [esp + 0x28], edi
movq xmm0, qword [esi + 0x10]
movq qword [esp + 0x60], xmm0
mov edx, dword [eax + 0x2c]
mov dword [esp + 0x48], esi
mov dword [esp + 0x1c], eax
test edx, edx
jne 0x46e25f
cmp dword [eax + 0x38], edx
jne 0x46e25f
mov esi, dword [ecx + 8]
mov dword [esp + 0x40], esi
test esi, esi
jne 0x46d20c
cmp dword [ecx + 0x78], esi
jne 0x46d201
mov eax, dword [esp + 0x3c]
test byte [eax + 0x44], 8
jne 0x46d201
mov byte [ecx + 0x17], 1
call fcn.00425fe0
mov esi, eax
mov dword [esp + 0x40], eax
mov cl, byte [esp + 0x50]
cmp cl, 0xc
jne 0x46d283
mov eax, dword [edi]
mov ecx, dword [esi + 0x88]
mov edx, dword [eax]
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x46d247
push 0
push edx
push dword [esp + 0x14]
mov edx, 0x6c
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x46d27d
mov edi, dword [esp + 0xc]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x6c
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov cl, 0xe
mov byte [esp + 0x50], cl
mov eax, dword [edi + 8]
test eax, 0x400
je 0x46d30d
mov eax, dword [edi + 0x30]
mov ecx, 1
mov dword [esp + 0xc], ecx
test eax, eax
je 0x46d2b0
mov edi, eax
inc ecx
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x46d2a1
mov dword [esp + 0xc], ecx
nop
mov esi, dword [edi + 0x30]
lea eax, [esp + 0x50]
mov ecx, dword [esp + 0x14]
mov edx, edi
push eax
mov dword [edi + 0x30], 0
call fcn.00472500
mov ecx, eax
mov dword [edi + 0x30], esi
add esp, 4
test ecx, ecx
jne 0x46d2e5
mov eax, dword [esp + 0xc]
mov word [edi + 6], ax
mov edi, dword [edi + 0x34]
test edi, edi
jne 0x46d2b0
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x58]
mov dword [edx + 8], eax
mov eax, dword [esp + 0x5c]
mov dword [edx + 0xc], eax
mov eax, ecx
pop edi
pop esi
mov ecx, dword [esp + 0xa4]
xor ecx, esp
call fcn.004e5962
mov esp, ebp
pop ebp
ret
test eax, 0x2000
je 0x46d32c
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x50]
push eax
mov edx, edi
call fcn.0046c8b0
add esp, 4
jmp 0x46e027
cmp dword [edi + 0x2c], 0
je 0x46d359
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x14]
push edx
mov edx, edi
call fcn.0046ec00
add esp, 4
pop edi
pop esi
mov ecx, dword [esp + 0xa4]
xor ecx, esp
call fcn.004e5962
mov esp, ebp
pop ebp
ret
movzx eax, byte [edi + 4]
sub eax, 0x73
je 0x46dba0
sub eax, 1
je 0x46d934
sub eax, 1
je 0x46dba0
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x28]
mov dword [esp + 0x10], eax
inc eax
mov dword [esp + 0x20], eax
inc eax
mov dword [edx + 0x28], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
mov dword [esp + 0xc], ecx
cmp dword [eax + 0x30], ecx
jg 0x46d3bb
push 0
push 0
push dword [esp + 0x18]
mov edx, 0x6c
mov ecx, esi
call fcn.00426240
mov edx, dword [esp + 0x20]
add esp, 0xc
jmp 0x46d3f9
mov edi, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x6c
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0xc]
mov dword [edi + 0x14], eax
mov ecx, edi
mov eax, dword [edi + 0x34]
test eax, eax
je 0x46d40e
mov ecx, eax
mov eax, dword [ecx + 0x34]
test eax, eax
jne 0x46d405
or dword [ecx + 8], 0x20
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x80], eax
mov eax, dword [edx + 0x1a0]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x7c]
push eax
mov byte [esp + 0x80], 1
mov dword [esp + 0x90], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
call fcn.00472500
mov ecx, eax
add esp, 4
mov dword [esp + 0x24], ecx
test ecx, ecx
jne 0x46e217
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x88]
cmp dword [eax + 0x30], edx
jg 0x46d498
push ecx
push ecx
push dword [esp + 0x28]
lea edx, [ecx + 0x6c]
mov ecx, esi
call fcn.00426240
add esp, 0xc
mov edx, eax
jmp 0x46d4d2
mov edi, dword [esp + 0x20]
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x6c
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov dword [edi + 0x18], edx
mov edx, edi
mov eax, dword [edi + 0x38]
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x3c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x14]
mov dword [edi + 0x30], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
mov ecx, dword [eax + 0x1a0]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x7c]
push ecx
mov ecx, eax
call fcn.00472500
mov dword [esp + 0x28], eax
add esp, 4
mov eax, dword [edi + 0x30]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x30], eax
movzx eax, word [eax + 6]
cmp word [edi + 6], ax
jle 0x46d542
mov word [edi + 6], ax
mov edx, dword [edi + 0x38]
test edx, edx
je 0x46d552
mov ecx, dword [esp + 0x3c]
call fcn.0043cb90
mov eax, dword [esp + 0xc]
mov dword [edi + 0x38], eax
mov eax, dword [esp + 0x18]
mov dword [edi + 0x3c], eax
mov ecx, dword [esi + 0xc]
mov dword [esp + 0xc], ecx
mov edx, dword [ecx + 0x44]
mov dword [esp + 0x1c], edx
lea eax, [edx + 1]
mov dword [ecx + 0x44], eax
lea eax, [edx - 1]
test edx, eax
jne 0x46d59d
lea eax, [edx*8 + 4]
mov edx, dword [ecx + 0x48]
mov ecx, dword [ecx]
push 0
push eax
call fcn.004055e0
mov ecx, dword [esp + 0x14]
add esp, 8
mov edx, dword [esp + 0x1c]
mov dword [ecx + 0x48], eax
mov eax, dword [ecx + 0x48]
test eax, eax
je 0x46d5ab
mov dword [eax + edx*4], 0xffffffff
mov ecx, dword [esi + 0xc]
not edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0xc], ecx
mov edx, dword [ecx + 0x44]
mov dword [esp + 0x4c], edx
lea eax, [edx + 1]
mov dword [ecx + 0x44], eax
lea eax, [edx - 1]
test edx, eax
jne 0x46d5ee
lea eax, [edx*8 + 4]
mov edx, dword [ecx + 0x48]
mov ecx, dword [ecx]
push 0
push eax
call fcn.004055e0
mov ecx, dword [esp + 0x14]
add esp, 8
mov edx, dword [esp + 0x4c]
mov dword [ecx + 0x48], eax
mov eax, dword [ecx + 0x48]
test eax, eax
je 0x46d5fc
mov dword [eax + edx*4], 0xffffffff
push dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
not edx
mov dword [esp + 0x50], edx
mov edx, edi
call fcn.0046c3d0
mov eax, dword [esi + 0xc]
add esp, 4
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46d63d
push 0
push dword [esp + 0x20]
mov edx, 0x25
mov ecx, esi
push dword [esp + 0x18]
call fcn.00426240
add esp, 0xc
jmp 0x46d673
mov edx, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x25
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x14]
mov al, byte [ecx + 0x13]
test al, al
jne 0x46d686
inc dword [ecx + 0x2c]
mov edx, dword [ecx + 0x2c]
jmp 0x46d695
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov edx, dword [ecx + eax*4 + 0x15c]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
mov dword [esp + 0x18], edx
mov dword [esp + 0xc], ecx
cmp dword [eax + 0x30], ecx
jg 0x46d6cb
push 0
push edx
push dword [esp + 0x18]
mov edx, 0x7a
mov ecx, esi
call fcn.00426240
mov edx, dword [esp + 0x24]
add esp, 0xc
mov dword [esp + 0xc], eax
jmp 0x46d701
mov edi, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x7a
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
mov dword [esp + 0x34], ecx
cmp dword [eax + 0x30], ecx
jg 0x46d733
push edx
push dword [esp + 0x50]
mov edx, 0x1d
mov ecx, esi
push dword [esp + 0x28]
call fcn.00426240
mov edx, dword [esp + 0x24]
add esp, 0xc
mov ecx, eax
jmp 0x46d76d
mov edi, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x4c]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x34]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
jne 0x46d788
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x14]
test edx, edx
je 0x46d7e1
mov al, byte [ecx + 0x13]
mov byte [esp + 0x3b], al
cmp al, 8
jae 0x46d7e1
movzx edi, byte [ecx + 0x19]
lea eax, [ecx + 0x94]
xor edx, edx
mov dword [esp + 0x34], edi
test edi, edi
mov edi, dword [esp + 0x28]
je 0x46d7ce
mov edi, dword [esp + 0x18]
cmp dword [eax + 0xc], edi
mov edi, dword [esp + 0x28]
je 0x46d849
inc edx
add eax, 0x14
cmp edx, dword [esp + 0x34]
jl 0x46d7b3
movzx eax, byte [esp + 0x3b]
mov edx, dword [esp + 0x18]
mov dword [ecx + eax*4 + 0x15c], edx
inc byte [ecx + 0x13]
push dword [esp + 0x1c]
lea eax, [esp + 0x54]
mov edx, edi
push dword [esp + 0x50]
push eax
push 0
push 0
push dword [esp + 0x24]
call fcn.004698e0
mov eax, dword [esi + 0xc]
add esp, 0x18
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x46d822
mov eax, dword [esp + 0x4c]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46d84f
mov edx, dword [esp + 0xc]
mov ecx, esi
push 0
push edx
push dword [esp + 0x18]
mov edx, 7
call fcn.00426240
add esp, 0xc
jmp 0x46d885
mov byte [eax + 6], 1
jmp 0x46d7e1
mov edx, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xc]
mov dword [eax + ecx*4], 7
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x46d8a7
mov eax, dword [esp + 0x1c]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46d8cb
push 0
push 0
push dword [esp + 0x28]
mov edx, 0x70
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x46d901
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x70
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46d92b
push 0
push 0
push dword [esp + 0x18]
mov edx, 0x70
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x46e027
mov edx, dword [esp + 0x10]
jmp 0x46dff5
mov ecx, dword [esp + 0x1c]
xor eax, eax
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [edi + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [edi + 0x38]
mov dword [ecx + 0x38], eax
mov eax, dword [edi + 0x3c]
mov dword [ecx + 0x3c], eax
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x1a0]
mov dword [esp + 0x30], edx
lea edx, [esp + 0x50]
push edx
mov edx, ecx
mov ecx, eax
call fcn.00472500
mov ecx, eax
mov dword [edi + 0x38], 0
add esp, 4
mov dword [esp + 0x24], ecx
mov dword [edi + 0x3c], 0
test ecx, ecx
jne 0x46e217
mov dword [edi + 0x30], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0xc]
mov dword [edi + 0xc], ecx
mov eax, dword [eax + 0x10]
mov dword [esp + 0x34], ecx
mov dword [edi + 0x10], eax
test ecx, ecx
je 0x46da7d
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x88]
mov dword [esp + 0x18], edx
cmp dword [eax + 0x30], edx
jg 0x46d9dc
push 0
push 0
push ecx
mov edx, 0x16
mov ecx, esi
call fcn.00426240
add esp, 0xc
mov dword [esp + 0x18], eax
jmp 0x46da12
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov edx, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x16
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [edi + 0x10]
test edx, edx
je 0x46da7d
mov eax, dword [edi + 0xc]
mov ecx, dword [esi + 0x88]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x46da48
push edx
lea eax, [edx + 1]
mov ecx, esi
push eax
push dword [esp + 0x14]
mov edx, 0x93
call fcn.00426240
add esp, 0xc
jmp 0x46da7d
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0xc]
mov dword [eax + ecx*4 + 4], esi
lea esi, [edx + 1]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x93
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x14]
mov edx, edi
mov ecx, dword [eax + 0x1a0]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x50]
push ecx
mov ecx, eax
call fcn.00472500
movzx ecx, word [edi + 6]
add esp, 4
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x30]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x30], eax
mov dword [esp + 0x34], ecx
movsx ecx, cx
movzx eax, word [eax + 6]
mov dword [esp + 0xc], eax
movsx edx, ax
cmp word [esp + 0x34], ax
jl 0x46daf5
lea eax, [edx + 0x31]
cmp ecx, eax
jle 0x46dad8
movzx eax, word [edi + 6]
jmp 0x46db26
lea eax, [edx + 0x1f]
cmp ecx, eax
jle 0x46dae6
movzx eax, word [edi + 6]
inc eax
jmp 0x46db23
sub ecx, edx
movzx eax, byte [ecx + 0x5401b4]
movzx ecx, word [edi + 6]
jmp 0x46db20
lea eax, [ecx + 0x31]
cmp edx, eax
jle 0x46db05
mov ecx, dword [esp + 0xc]
movzx eax, cx
jmp 0x46db26
lea eax, [ecx + 0x1f]
cmp edx, eax
jle 0x46db13
mov eax, dword [esp + 0xc]
inc eax
jmp 0x46db23
sub edx, ecx
mov ecx, dword [esp + 0xc]
movzx eax, byte [edx + 0x5401b4]
add ax, cx
movzx eax, ax
mov edx, dword [esp + 0x1c]
mov word [edi + 6], ax
mov ecx, dword [edx + 0x38]
test ecx, ecx
je 0x46db5f
lea edx, [esp + 0x4c]
call fcn.0043dde0
test eax, eax
je 0x46db5f
mov eax, dword [esp + 0x4c]
test eax, eax
jle 0x46db5f
cdq
push edx
push eax
call fcn.004094d0
add esp, 8
cmp word [edi + 6], ax
jle 0x46db5f
mov word [edi + 6], ax
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x46e027
mov eax, dword [esi]
mov edx, dword [esi + 0x88]
cmp byte [eax + 0x49], 0
je 0x46db86
mov eax, 0x550080
mov dword [eax + 8], edx
jmp 0x46e027
test ecx, ecx
lea eax, [edx - 1]
cmovns eax, ecx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x46e027
cmp cl, 1
jne 0x46dbb2
mov eax, dword [esp + 0x54]
mov dword [esp + 0x10], eax
jmp 0x46dc41
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x10], eax
inc eax
mov dword [ecx + 0x28], eax
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x88]
cmp dword [eax + 0x30], edx
jg 0x46dbea
push 0
push 0
push dword [esp + 0x18]
mov edx, 0x6c
mov ecx, esi
call fcn.00426240
add esp, 0xc
mov edx, eax
jmp 0x46dc24
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x6c
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov dword [edi + 0x14], edx
mov ecx, edi
mov eax, dword [edi + 0x34]
test eax, eax
je 0x46dc39
mov ecx, eax
mov eax, dword [ecx + 0x34]
test eax, eax
jne 0x46dc30
or dword [ecx + 8], 0x20
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x14]
mov byte [esp + 0x94], 1
mov dword [esp + 0xa4], 0
mov dword [esp + 0x9c], 0
mov ecx, dword [eax + 0x1a0]
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x94]
push ecx
mov ecx, eax
mov dword [esp + 0xa4], 0
call fcn.00472500
mov ecx, eax
add esp, 4
mov dword [esp + 0x24], ecx
test ecx, ecx
jne 0x46e217
cmp byte [edi + 4], 0x75
mov edx, edi
mov dword [edi + 0x30], eax
mov eax, dword [edi + 0x38]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x3c]
mov dword [esp + 0x4c], eax
sete al
inc al
mov dword [edi + 0x38], ecx
mov byte [esp + 0x94], al
mov eax, dword [esp + 0x14]
mov dword [edi + 0x3c], ecx
mov ecx, dword [eax + 0x1a0]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x94]
push ecx
mov ecx, eax
call fcn.00472500
mov edx, dword [edi + 0x2c]
add esp, 4
mov dword [esp + 0x24], eax
test edx, edx
je 0x46dd00
mov ecx, dword [esp + 0x3c]
call fcn.0043dac0
cmp byte [edi + 4], 0x73
mov eax, dword [edi + 0x30]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x30], eax
mov dword [edi + 0x2c], 0
jne 0x46dd9b
movzx ecx, word [edi + 6]
movzx eax, word [eax + 6]
mov dword [esp + 0x34], ecx
mov dword [esp + 0xc], eax
movsx ecx, cx
movsx edx, ax
cmp word [esp + 0x34], ax
jl 0x46dd66
lea eax, [edx + 0x31]
cmp ecx, eax
jle 0x46dd49
movzx eax, word [edi + 6]
jmp 0x46dd97
lea eax, [edx + 0x1f]
cmp ecx, eax
jle 0x46dd57
movzx eax, word [edi + 6]
inc eax
jmp 0x46dd94
sub ecx, edx
movzx eax, byte [ecx + 0x5401b4]
movzx ecx, word [edi + 6]
jmp 0x46dd91
lea eax, [ecx + 0x31]
cmp edx, eax
jle 0x46dd76
mov ecx, dword [esp + 0xc]
movzx eax, cx
jmp 0x46dd97
lea eax, [ecx + 0x1f]
cmp edx, eax
jle 0x46dd84
mov eax, dword [esp + 0xc]
inc eax
jmp 0x46dd94
sub edx, ecx
mov ecx, dword [esp + 0xc]
movzx eax, byte [edx + 0x5401b4]
add ax, cx
movzx eax, ax
mov word [edi + 6], ax
mov edx, dword [edi + 0x38]
test edx, edx
je 0x46ddab
mov ecx, dword [esp + 0x3c]
call fcn.0043cb90
cmp byte [esp + 0x50], 1
mov eax, dword [esp + 0x18]
mov dword [edi + 0x38], eax
mov eax, dword [esp + 0x4c]
mov dword [edi + 0x3c], eax
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
je 0x46e027
mov edx, dword [esi + 0xc]
mov dword [esp + 0xc], edx
mov ecx, dword [edx + 0x44]
mov dword [esp + 0x20], ecx
lea eax, [ecx + 1]
mov dword [edx + 0x44], eax
lea eax, [ecx - 1]
test ecx, eax
jne 0x46de13
mov edx, dword [edx + 0x48]
lea eax, [ecx*8 + 4]
mov ecx, dword [esp + 0xc]
push 0
push eax
mov ecx, dword [ecx]
call fcn.004055e0
mov edx, dword [esp + 0x14]
add esp, 8
mov ecx, dword [esp + 0x20]
mov dword [edx + 0x48], eax
mov eax, dword [edx + 0x48]
test eax, eax
je 0x46de21
mov dword [eax + ecx*4], 0xffffffff
mov eax, dword [esi + 0xc]
not ecx
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov edx, dword [eax + 0x44]
mov dword [esp + 0x4c], edx
lea eax, [edx + 1]
mov dword [edi + 0x44], eax
lea eax, [edx - 1]
mov edi, dword [esp + 0x28]
test edx, eax
jne 0x46de74
lea eax, [edx*8 + 4]
push 0
push eax
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x48]
mov ecx, dword [eax]
call fcn.004055e0
mov ecx, dword [esp + 0x20]
add esp, 8
mov edx, dword [esp + 0x4c]
mov dword [ecx + 0x48], eax
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x48]
test eax, eax
je 0x46de86
mov dword [eax + edx*4], 0xffffffff
not edx
mov dword [esp + 0x4c], edx
mov edx, edi
push ecx
mov ecx, dword [esp + 0x18]
call fcn.0046c3d0
mov eax, dword [esi + 0xc]
add esp, 4
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46dec5
mov edx, dword [esp + 0x20]
mov ecx, esi
push 0
push edx
push dword [esp + 0x18]
mov edx, 0x25
call fcn.00426240
add esp, 0xc
jmp 0x46defb
mov edx, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x25
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x20]
mov eax, dword [esi + 0x88]
mov edx, edi
push dword [esp + 0x50]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x58]
push eax
push 0
push 0
push dword [esp + 0x24]
call fcn.004698e0
mov eax, dword [esi + 0xc]
add esp, 0x18
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x46df4a
mov eax, dword [esp + 0x4c]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46df74
push 0
push dword [esp + 0x10]
mov edx, 7
mov ecx, esi
push dword [esp + 0x18]
call fcn.00426240
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x46dfae
mov edi, dword [esp + 0xc]
lea eax, [ecx + 1]
mov edx, dword [esp + 0x10]
lea ecx, [ecx + ecx*4]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x28]
mov dword [eax + ecx*4], 7
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x46dfd0
mov eax, dword [esp + 0x20]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46dff1
push 0
push 0
push edx
mov edx, 0x70
mov ecx, esi
call fcn.00426240
add esp, 0xc
jmp 0x46e027
mov edi, dword [esp + 0x28]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4], 0x70
movzx edx, byte [edi + 4]
xor eax, eax
cmp byte [edi + 4], 0x74
mov ecx, dword [esp + 0x14]
setne al
push eax
push dword [esp + 0x30]
push dword [esp + 0x38]
call fcn.0046ae10
add esp, 0xc
test byte [edi + 8], 0x20
je 0x46e213
mov eax, dword [edi]
mov ecx, dword [esp + 0x3c]
push 1
mov edx, dword [eax]
mov dword [esp + 0x30], edx
call fcn.0046abf0
mov ecx, eax
add esp, 4
mov dword [esp + 0x18], ecx
test ecx, ecx
jne 0x46e081
mov ecx, 7
mov dword [esp + 0x24], ecx
jmp 0x46e217
mov edx, dword [esp + 0x2c]
add ecx, 0x14
mov dword [esp + 0x30], ecx
test edx, edx
jle 0x46e110
mov dword [esp + 0xc], 0
xor esi, esi
nop
mov edx, dword [edi + 0x30]
test edx, edx
je 0x46e0be
mov ecx, dword [esp + 0x14]
push esi
call fcn.0046c720
mov ecx, dword [esp + 0x34]
add esp, 4
test eax, eax
jne 0x46e0db
jmp 0x46e0c0
xor eax, eax
mov edx, dword [edi]
cmp esi, dword [edx]
jge 0x46e0db
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov edx, dword [edx + eax + 4]
call fcn.0043b820
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
test eax, eax
jne 0x46e0ea
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 8]
mov dword [ecx], eax
add dword [esp + 0xc], 0x18
inc esi
mov edx, dword [esp + 0x2c]
add ecx, 4
mov dword [esp + 0x30], ecx
cmp esi, edx
jl 0x46e0a0
mov esi, dword [esp + 0x40]
nop dword [eax]
nop word [eax + eax]
lea eax, [edi + 0x14]
mov dword [esp + 0xc], 0
mov edi, dword [esp + 0x18]
mov dword [esp + 0x40], eax
mov eax, dword [eax]
test eax, eax
js 0x46e1b4
lea ecx, [eax + eax*4]
mov eax, dword [esi]
shl ecx, 2
cmp byte [eax + 0x49], 0
je 0x46e142
mov eax, 0x550080
jmp 0x46e147
mov eax, dword [esi + 0x58]
add eax, ecx
mov dword [eax + 8], edx
inc dword [edi]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x46e16a
push edi
mov edx, 0xfffffff7
mov ecx, eax
call fcn.00426b10
mov edx, dword [esp + 0x30]
add esp, 4
jmp 0x46e191
mov eax, dword [esi + 0x58]
add eax, ecx
cmp byte [eax + 1], 0
je 0x46e18a
push 0xfffffffffffffff7
push edi
mov edx, eax
mov ecx, esi
call fcn.00426c90
mov edx, dword [esp + 0x34]
add esp, 8
jmp 0x46e191
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0xf7
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
mov dword [eax], 0xffffffff
add eax, 4
mov dword [esp + 0x40], eax
cmp ecx, 2
jl 0x46e123
mov edi, dword [esp + 0x28]
mov edi, dword [edi + 0x30]
mov dword [esp + 0x28], edi
test edi, edi
jne 0x46e110
mov ecx, dword [esp + 0x18]
add dword [ecx], 0xffffffff
jne 0x46e213
mov esi, dword [ecx + 0xc]
test esi, esi
je 0x46e20a
cmp dword [esi + 0x1d0], edi
je 0x46e1ea
mov edx, ecx
mov ecx, esi
call fcn.004050c0
jmp 0x46e213
cmp ecx, dword [esi + 0x128]
jb 0x46e20a
cmp ecx, dword [esi + 0x12c]
jae 0x46e20a
mov eax, dword [esi + 0x124]
mov dword [ecx], eax
mov dword [esi + 0x124], ecx
jmp 0x46e213
push ecx
call fcn.00405050
add esp, 4
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x58]
mov dword [edx + 8], eax
mov eax, dword [esp + 0x5c]
mov dword [edx + 0xc], eax
mov eax, dword [esp + 0x44]
test eax, eax
je 0x46e2be
mov ecx, dword [esp + 0x3c]
mov edx, eax
push 1
call fcn.00468540
mov ecx, dword [esp + 0x28]
add esp, 4
mov eax, ecx
pop edi
pop esi
mov ecx, dword [esp + 0xa4]
xor ecx, esp
call fcn.004e5962
mov esp, ebp
pop ebp
ret
movzx eax, byte [edi + 4]
sub eax, 0x74
je 0x46e287
sub eax, 1
je 0x46e280
sub eax, 1
je 0x46e279
mov eax, 0x53bf58
jmp 0x46e28c
mov eax, 0x53bf44
jmp 0x46e28c
mov eax, 0x53bf50
jmp 0x46e28c
mov eax, 0x53bf38
push eax
test edx, edx
mov eax, 0x53bff4
mov edi, 0x53c000
cmove eax, edi
push eax
push 0x53c008
push ecx
call fcn.004081e0
mov eax, dword [esp + 0x68]
add esp, 0x10
mov dword [esi + 8], eax
mov ecx, 1
mov eax, dword [esp + 0x5c]
mov dword [esi + 0xc], eax
mov eax, ecx
mov ecx, dword [esp + 0xac]
pop edi
pop esi
xor ecx, esp
call fcn.004e5962
mov esp, ebp
pop ebp
ret