Function at 0x444720
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x1c0
mov eax, dword [0x65ada4]
xor eax, esp
mov dword [esp + 0x1bc], eax
mov eax, dword [esp + 0x1d0]
mov edx, dword [esp + 0x1d8]
mov ecx, dword [esp + 0x1d4]
push ebx
mov ebx, dword [esp + 0x1c8]
mov dword [esp + 0x28], eax
lea eax, [ebx + ebx*2]
add eax, eax
push ebp
mov ebp, dword [esp + 0x1d4]
mov dword [esp + 0xc], edx
movzx edx, word [eax + 0x6257e4]
push esi
movsx esi, dx
mov dword [esp + 0x38], eax
mov eax, esi
imul eax, eax, 0xd
mov dword [esp + 0x3c], ecx
mov ecx, dword [0x62594e]
mov dword [esp + 0xc], 0
cmp byte [eax + ecx + 0xc], 0
push edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], eax
jne 0x444e32
mov eax, ebx
imul eax, eax, 0xd
cmp dword [eax + ecx], 0
mov dword [esp + 0x30], eax
jne 0x4447cc
mov ecx, ebx
call fcn.00442400
mov edi, eax
test edi, edi
jne 0x445ead
mov edx, dword [esp + 0x28]
mov eax, dword [0x625952]
mov edi, esi
imul edi, edi, 0x13
cmp byte [edi + eax + 0x10], 0
je 0x4448e6
call fcn.004422b0
mov edx, eax
mov dword [esp + 0x1c], edx
cmp edx, 0xffffffff
jne 0x4448ea
mov eax, dword [0x625952]
mov ecx, dword [edi + eax]
mov esi, dword [ecx + 0x24]
shl esi, 4
cmp dword [esi + ecx + 4], 1
jne 0x444818
mov esi, dword [esp + 0x24]
mov byte [edi + eax + 0x10], 0
jmp 0x4448ea
mov eax, ecx
mov ebx, dword [eax + 0x24]
mov esi, ebx
shl esi, 4
cmp dword [esi + eax + 4], 1
jne 0x444845
push 0x7e2
push 0x384
call fcn.00406f10
add esp, 8
mov edi, 0x384
jmp 0x445ead
mov edx, dword [esi + eax]
mov eax, dword [esp + 0x24]
call fcn.004421f0
mov ecx, dword [0x625952]
mov edx, dword [edi + ecx]
mov dword [esi + edx], 0xffffffff
mov eax, dword [0x625952]
mov eax, dword [edi + eax]
mov ecx, dword [eax + esi + 4]
mov edx, dword [eax + esi + 8]
shl ecx, 4
mov dword [ecx + eax + 8], edx
mov eax, dword [0x625952]
mov eax, dword [edi + eax]
mov ecx, dword [eax + esi + 8]
mov edx, dword [eax + esi + 4]
shl ecx, 4
mov dword [ecx + eax + 4], edx
mov eax, dword [0x625952]
mov ecx, dword [edi + eax]
mov dword [esi + ecx], 0xffffffff
mov edx, dword [0x625952]
mov eax, dword [edi + edx]
mov dword [eax + esi + 4], 0xffffffff
mov ecx, dword [0x625952]
mov eax, dword [edi + ecx]
mov edx, dword [eax + 8]
mov dword [eax + esi + 8], edx
mov eax, dword [0x625952]
mov ecx, dword [edi + eax]
mov edx, dword [esp + 0x28]
mov dword [ecx + 8], ebx
call fcn.004422b0
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x1d4]
mov edx, eax
mov dword [esp + 0x1c], edx
jmp 0x4448ea
mov edx, dword [esp + 0x1c]
cmp ebx, 0x12
ja case.0x4448f6.5
movzx eax, byte [ebx + 0x445f0c]
jmp dword [eax*4 + 0x445f00]
mov eax, 2
jmp 0x444909
mov eax, 1
cmp dword [esp + 0x1d8], eax
je case.0x4448f6.5
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1d8], eax
mov byte [ecx], 0
mov eax, dword [0x625952]
cmp byte [edi + eax + 0x10], 0
je case.0x444959.5
mov ecx, dword [esp + 0x34]
mov dword [ecx], edx
lea eax, [esi + esi*4]
mov ecx, dword [eax*8 + 0x62554c]
mov eax, dword [0x625952]
imul ecx, edx
add ecx, dword [edi + eax + 8]
mov dword [esp + 0x34], ecx
cmp ebx, 0x12
ja case.0x444959.5
jmp dword [ebx*4 + 0x445f20]
mov eax, dword [eax + 0x8d]
imul edx, edx, 0x43
mov ebx, dword [ebp + 4]
lea esi, [edx + eax]
lea eax, [esi + 0x18]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov edx, dword [esp + 0x14]
cmp byte [edx], al
je 0x444995
mov ebp, dword [esp + 0x18]
mov dword [esi + 4], eax
jmp case.0x444959.5
mov eax, dword [esp + 0x18]
add esi, 4
add eax, 8
push esi
push eax
call fcn.004438c0
mov edi, eax
add esp, 8
test edi, edi
jne 0x445ead
mov ebp, dword [esp + 0x18]
jmp case.0x444959.5
mov eax, dword [eax + 0x8d]
imul edx, edx, 0x43
mov ecx, dword [ebp]
add eax, edx
mov edx, dword [ecx]
mov dword [eax + 0xc], edx
mov ecx, dword [esp + 0x14]
cmp byte [ecx], 0
je 0x4449e4
mov dword [eax + 4], 0
jmp case.0x444959.5
mov edx, dword [ebp + 4]
mov ecx, dword [edx]
mov dword [eax + 4], ecx
jmp case.0x444959.5
mov eax, dword [eax + 0x1b]
imul edx, edx, 0x2b
add eax, edx
mov edx, dword [ebp]
mov ecx, dword [edx]
mov edx, dword [esp + 0x14]
mov dword [eax + 8], ecx
cmp byte [edx], 0
je 0x444a16
mov dword [eax + 4], 0
jmp case.0x444959.5
mov ecx, dword [ebp + 4]
mov edx, dword [ecx]
mov dword [eax + 4], edx
jmp case.0x444959.5
mov eax, dword [eax + 0xc6]
imul edx, edx, 0x16
mov ecx, dword [ebp]
add eax, edx
mov edx, dword [ecx]
mov dword [eax + 8], edx
jmp 0x4449cf
mov eax, dword [eax + 0xb3]
mov ebx, dword [ebp]
lea edx, [edx + edx*2]
lea esi, [eax + edx*8]
lea eax, [esi + 0xc]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov eax, dword [esp + 0x14]
cmp byte [eax], 0
mov ebp, dword [esp + 0x18]
je 0x444a6e
mov dword [esi + 4], edi
jmp case.0x444959.5
mov ecx, dword [ebp + 4]
mov edx, dword [ecx]
mov dword [esi + 4], edx
jmp case.0x444959.5
mov eax, dword [eax + 0x67]
imul edx, edx, 0x31
mov ebx, dword [ebp]
lea eax, [edx + eax + 0xc]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov ebp, dword [esp + 0x18]
jmp case.0x444959.5
mov eax, dword [eax + 0x67]
imul edx, edx, 0x31
mov ecx, dword [ebp]
add eax, edx
mov edx, dword [ecx]
mov dword [eax + 8], edx
jmp 0x4449cf
mov eax, dword [eax + 0xa0]
lea edx, [edx + edx*2]
lea esi, [eax + edx*8]
mov eax, dword [ebp + 4]
mov ecx, dword [eax]
mov edx, dword [esp + 0x14]
mov dword [esi + 0x10], ecx
cmp byte [edx], 0
mov eax, dword [ebp]
je 0x444ae6
mov ecx, dword [eax]
mov dword [esi + 8], ecx
mov dword [esi + 4], 0
jmp case.0x444959.5
cmp byte [eax], 0
je 0x444ba7
mov edx, dword [str.public]
mov eax, dword [ebp + 4]
mov dword [ebp], edx
mov ecx, dword [eax]
mov edx, dword [ebp + 8]
lea eax, [esp + 0x44]
push eax
push ebp
push 2
push 6
mov dword [esp + 0x48], ecx
mov dword [ebp + 4], edx
call fcn.00444330
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x445ead
push 6
call fcn.004432b0
mov eax, dword [esp + 0x48]
add esp, 4
test eax, eax
jne 0x444b72
mov ecx, dword [str.public]
push str.dummyhost
push str.dummydb
push ecx
lea edx, [esp + 0x54]
push str._s__s__s
push edx
call dword [sym.imp.MSVCR90.dll_sprintf]
push 0x7d6
push 0x1f7f
call fcn.00406f10
add esp, 0x1c
mov eax, 0x1f7f
jmp 0x445ee5
mov ebp, dword [esp + 0x18]
add eax, 8
mov dword [ebp], eax
lea eax, [esp + 0x38]
mov dword [ebp + 4], eax
mov ecx, dword [str.public]
mov edx, dword [ecx + 0x120]
mov dword [esi + 8], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [esi + 4], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [esi + 4], ecx
jmp case.0x444959.5
mov edx, dword [eax]
mov dword [esi + 8], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [esi + 4], ecx
jmp case.0x444959.5
mov eax, dword [eax + 0xa0]
mov ecx, dword [ebp]
lea edx, [edx + edx*2]
lea eax, [eax + edx*8]
mov edx, dword [ecx]
mov dword [eax + 8], edx
mov ecx, dword [ebp + 4]
mov edx, dword [ecx]
mov dword [eax + 0x10], edx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov dword [eax + 0xc], edx
jmp case.0x444959.5
mov eax, dword [eax + 0x2e]
lea ecx, [edx + edx*4]
mov edx, dword [ebp]
lea eax, [eax + ecx*4]
mov ecx, dword [edx]
mov dword [eax + 4], ecx
mov edx, dword [ebp + 4]
mov ecx, dword [edx]
mov dword [eax + 0xc], ecx
jmp case.0x444959.5
mov eax, dword [eax + 0x2e]
mov ecx, dword [ebp]
lea edx, [edx + edx*4]
lea eax, [eax + edx*4]
mov edx, dword [ecx]
mov dword [eax + 4], edx
mov ecx, dword [ebp + 4]
mov edx, dword [ecx]
mov dword [eax + 0xc], edx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov dword [eax + 8], edx
jmp case.0x444959.5
mov eax, dword [eax + 0xd9]
jmp 0x444ccb
mov eax, dword [eax + 0x54]
mov ebx, dword [ebp + 4]
lea edx, [edx + edx*8]
lea esi, [eax + edx*4]
lea eax, [esi + 8]
jmp 0x444a4a
mov eax, dword [eax + 0x41]
lea ecx, [edx*8]
sub ecx, edx
mov edx, dword [ebp]
lea eax, [eax + ecx*4]
mov ecx, dword [edx]
mov edx, dword [esp + 0x14]
mov dword [eax + 0xc], ecx
cmp byte [edx], 0
je 0x444a16
mov dword [eax + 4], 0
jmp case.0x444959.5
mov eax, dword [eax + 0x7a]
imul edx, edx, 0x26
mov ecx, dword [ebp]
add eax, edx
mov edx, dword [ecx]
mov dword [eax + 0x10], edx
jmp 0x4449cf
mov ecx, dword [ebp]
imul edx, edx, 0x26
mov eax, dword [eax + 0x7a]
mov ecx, dword [ecx]
mov dword [eax + edx + 0x18], ecx
jmp case.0x444959.5
mov eax, dword [eax + 0xec]
lea ecx, [edx*8]
sub ecx, edx
mov edx, dword [ebp]
lea eax, [eax + ecx*4]
mov ecx, dword [edx]
mov edx, dword [esp + 0x14]
mov dword [eax + 8], ecx
cmp byte [edx], 0
je 0x444a16
mov dword [eax + 4], 0
jmp case.0x444959.5
mov eax, dword [eax + 8]
mov ecx, dword [ebp]
mov ecx, dword [ecx]
lea edx, [edx + edx*2]
mov dword [eax + edx*4 + 4], ecx
mov ecx, dword [esp + 0x30]
mov edx, dword [0x62594e]
cmp dword [ecx + edx + 4], 0
lea eax, [ecx + edx + 4]
jne 0x444cf7
mov edx, dword [ecx + edx]
mov dword [eax], edx
mov edx, dword [0x62594e]
mov eax, dword [esp + 0x14]
cmp byte [eax], 0
je 0x444d0c
mov eax, dword [ecx + edx + 4]
mov dword [ecx + edx], eax
jmp 0x444ddd
mov eax, dword [ecx + edx + 8]
test eax, eax
je 0x444d23
push eax
call fcn.00434540
mov edx, dword [0x62594e]
add esp, 4
mov esi, dword [esp + 0x30]
mov ecx, dword [esi + edx + 4]
push ecx
call fcn.00438210
mov edx, dword [0x62594e]
mov dword [esi + edx + 8], eax
mov eax, dword [0x62594e]
mov ecx, dword [esi + eax + 8]
mov dword [esi + eax], ecx
mov ecx, dword [0x62594e]
mov eax, dword [esi + ecx]
add esp, 4
test eax, eax
jne 0x444d83
mov edx, dword [esp + 0x2c]
mov byte [edx + ecx + 0xc], al
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x6257e0]
push ecx
push 0x7d6
push 6
call fcn.00406f10
add esp, 0xc
mov eax, 6
jmp 0x445ee5
push eax
call fcn.00434570
mov edx, dword [0x62594e]
mov esi, eax
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + edx]
mov edx, dword [ecx + 0x140]
mov eax, dword [esp + 0x1d8]
push ebp
push edx
push eax
call fcn.00480800
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x445ead
mov ebp, dword [esp + 0x18]
cmp dword [esp + 0x1d4], eax
jne 0x444dd4
mov ecx, dword [ebp + 0x10]
mov dl, byte [ecx]
mov eax, dword [0x6a0a80]
mov byte [eax + 0x10], dl
push esi
call fcn.00434570
add esp, 4
mov ecx, dword [esp + 0x1d8]
mov edx, dword [0x62594e]
mov esi, dword [esp + 0x30]
mov eax, dword [esi + edx]
push 1
push ebp
push ecx
push eax
call fcn.00434640
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x445ead
mov ecx, dword [0x62594e]
mov edx, dword [esi + ecx]
push edx
call fcn.00491370
mov edi, eax
add esp, 4
test edi, edi
jne 0x445ead
mov eax, dword [0x62594e]
mov ecx, dword [esp + 0x2c]
mov byte [ecx + eax + 0xc], 1
mov ebp, dword [esp + 0x1d4]
mov eax, dword [0x62594e]
imul ebp, ebp, 0xd
mov ecx, dword [eax + ebp]
push 0
lea edx, [esp + 0x14]
push edx
push ecx
call fcn.00490540
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x445ead
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x445e86
mov ebx, dword [esp + 0x24]
mov edx, dword [0x625952]
imul ebx, ebx, 0x13
mov dword [esp + 0x38], ebx
cmp byte [ebx + edx + 0x10], al
je 0x444f77
mov edx, dword [esp + 0x28]
call fcn.004422b0
mov esi, eax
mov dword [esp + 0x1c], esi
cmp esi, 0xffffffff
jne 0x444ec0
mov eax, dword [0x625952]
mov ecx, dword [ebx + eax]
mov edi, dword [ecx + 0x24]
shl edi, 4
mov edx, 1
cmp dword [edi + ecx + 4], edx
jne 0x444ec9
mov byte [ebx + eax + 0x10], 0
mov eax, dword [0x625952]
mov byte [ebx + eax + 0x11], dl
mov ecx, dword [esp + 0x10]
jmp 0x444f7b
mov eax, ecx
mov edi, dword [eax + 0x24]
mov esi, edi
shl esi, 4
cmp dword [esi + eax + 4], edx
je 0x444829
mov edx, dword [esi + eax]
mov eax, dword [esp + 0x24]
call fcn.004421f0
mov ecx, dword [0x625952]
mov edx, dword [ebx + ecx]
mov dword [esi + edx], 0xffffffff
mov eax, dword [0x625952]
mov eax, dword [ebx + eax]
mov ecx, dword [eax + esi + 4]
mov edx, dword [eax + esi + 8]
shl ecx, 4
mov dword [ecx + eax + 8], edx
mov eax, dword [0x625952]
mov eax, dword [ebx + eax]
mov ecx, dword [eax + esi + 8]
mov edx, dword [eax + esi + 4]
shl ecx, 4
mov dword [ecx + eax + 4], edx
mov eax, dword [0x625952]
mov ecx, dword [ebx + eax]
mov dword [esi + ecx], 0xffffffff
mov edx, dword [0x625952]
mov eax, dword [ebx + edx]
mov dword [eax + esi + 4], 0xffffffff
mov ecx, dword [0x625952]
mov eax, dword [ebx + ecx]
mov edx, dword [eax + 8]
mov dword [eax + esi + 8], edx
mov eax, dword [0x625952]
mov ecx, dword [ebx + eax]
mov edx, dword [esp + 0x28]
mov dword [ecx + 8], edi
call fcn.004422b0
mov ecx, dword [esp + 0x10]
mov esi, eax
mov dword [esp + 0x1c], esi
jmp 0x444f7b
mov esi, dword [esp + 0x1c]
mov edx, dword [0x625952]
cmp byte [ebx + edx + 0x10], 0
je 0x444f94
mov eax, dword [esp + 0x34]
mov dword [eax], esi
mov ecx, dword [esp + 0x10]
jmp 0x444f9c
mov dword [esp + 0x1c], 0
cmp dword [esp + 0x1d4], 0x12
ja case.default.0x444fb1
mov edx, dword [esp + 0x1d4]
jmp dword [edx*4 + 0x445f6c]
movzx esi, word [ecx]
movsx edi, si
mov eax, edi
cdq
sub eax, edx
sar eax, 1
movzx edx, word [ecx + eax*2 - 2]
cmp dx, si
lea ebp, [eax - 1]
jge 0x444fd5
movsx ebp, dx
mov eax, dword [0x625952]
mov eax, dword [eax + 0x8d]
cmp si, word [ecx + 2]
jne 0x444fea
xor ebx, ebx
jmp 0x444fed
lea ebx, [edi + ecx]
mov ecx, dword [esp + 0x1c]
imul ecx, ecx, 0x43
lea esi, [ecx + eax]
lea eax, [esi + 0x18]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 2]
cmp ax, word [ecx + 4]
jne 0x44501d
xor ebx, ebx
xor eax, eax
jmp 0x445022
cwde
add eax, ecx
xor ebx, ebx
mov edx, dword [eax]
mov dword [esi + 8], edx
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 4]
cmp ax, word [ecx + 6]
jne 0x445039
xor eax, eax
jmp 0x44503c
cwde
add eax, ecx
mov al, byte [eax]
mov byte [esi + 0x1c], al
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 6]
cmp ax, word [ecx + 8]
jne 0x445053
xor eax, eax
jmp 0x445056
cwde
add eax, ecx
mov ecx, dword [eax]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 8]
cmp ax, word [ecx + 0xa]
jne 0x44506d
xor eax, eax
jmp 0x445070
cwde
add eax, ecx
mov edx, dword [eax]
mov dword [esi + 0x10], edx
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 0xc]
cmp ax, word [ecx + 0xe]
jne 0x445087
xor eax, eax
jmp 0x44508a
cwde
add eax, ecx
cmp ebp, 9
mov ax, word [eax]
mov word [esi + 0x1d], ax
jl 0x4450db
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 0x10]
cmp cx, word [eax + 0x12]
je 0x4450d4
movsx ecx, cx
add eax, ecx
cmp eax, ebx
je 0x4450d4
lea edx, [esi + 0x3f]
push edx
lea ecx, [esi + 0x21]
push ecx
lea edx, [esi + 0x1f]
push edx
lea ecx, [esi + 0x20]
push ecx
push eax
call fcn.00442ab0
mov edi, eax
add esp, 0x14
cmp edi, ebx
jne 0x445ead
xor ebx, ebx
jmp 0x4450e2
mov byte [esi + 0x21], 1
mov dword [esi + 0x3f], ebx
mov byte [esi + 0x20], 1
mov byte [esi + 0x1f], bl
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 0xe]
cmp ax, word [ecx + 0x10]
je 0x445103
movsx edx, ax
lea eax, [edx + ecx]
cmp eax, ebx
je 0x445103
mov eax, dword [eax]
mov dword [esi + 0x34], eax
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 0xa]
cmp ax, word [ecx + 0xc]
jne 0x445111
xor eax, eax
jmp 0x445114
cwde
add eax, ecx
cmp ebp, 0xa
mov ecx, dword [eax]
mov dword [esi + 0x22], ecx
mov edx, dword [eax + 4]
mov dword [esi + 0x26], edx
mov ecx, dword [eax + 8]
mov dword [esi + 0x2a], ecx
mov edx, dword [eax + 0xc]
mov dword [esi + 0x2e], edx
mov ax, word [eax + 0x10]
mov word [esi + 0x32], ax
jl 0x44515e
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 0x12]
cmp cx, word [eax + 0x14]
je 0x44515e
movsx ecx, cx
add ecx, eax
cmp ecx, ebx
je 0x44515e
lea edx, [esi + 0x38]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
cmp al, bl
jne 0x445152
jmp 0x44516d
mov eax, 0x59595959
mov dword [esi + 0x38], eax
mov word [esi + 0x3c], ax
mov byte [esi + 0x3e], bl
mov edx, dword [esp + 0x14]
cmp byte [edx], bl
je 0x44517d
mov dword [esi + 4], ebx
jmp case.default.0x444fb1
cmp dword [esp + 0x1d4], ebx
jne 0x4451ba
mov eax, dword [esp + 0x18]
add esi, 4
add eax, 8
push esi
push eax
call fcn.004438c0
mov edi, eax
add esp, 8
cmp edi, ebx
jne 0x445ead
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x10]
mov eax, dword [0x6a0a80]
mov cl, byte [eax + 0x10]
mov byte [edx], cl
jmp case.default.0x444fb1
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 4]
mov ecx, dword [eax]
mov dword [esi + 4], ecx
jmp case.default.0x444fb1
movzx eax, word [ecx]
mov edx, dword [0x625952]
mov edx, dword [edx + 0x1b]
cmp ax, word [ecx + 2]
jne 0x4451e1
xor eax, eax
jmp 0x4451e4
cwde
add eax, ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax]
imul ecx, ecx, 0x2b
lea esi, [ecx + edx]
mov dword [esi + 8], eax
test eax, eax
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 2]
setl byte [esp + 0x23]
cmp cx, word [eax + 4]
jne 0x44520c
xor ebx, ebx
jmp 0x445211
movsx ebx, cx
add ebx, eax
lea eax, [esi + 0xc]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 4]
cmp cx, word [eax + 6]
jne 0x445235
xor ebx, ebx
jmp 0x44523a
movsx ebx, cx
add ebx, eax
lea eax, [esi + 0x10]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 6]
cmp cx, word [eax + 8]
jne 0x44525e
xor ebx, ebx
jmp 0x445263
movsx ebx, cx
add ebx, eax
lea eax, [esi + 0x14]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 8]
cmp cx, word [eax + 0xa]
jne 0x445287
xor ebx, ebx
jmp 0x44528c
movsx ebx, cx
add ebx, eax
lea eax, [esi + 0x18]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 0xa]
cmp ax, word [ecx + 0xc]
jne 0x4452b0
xor eax, eax
jmp 0x4452b3
cwde
add eax, ecx
mov dx, word [eax]
mov word [esi + 0x1c], dx
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 0xc]
cmp ax, word [ecx + 0xe]
jne 0x4452cc
xor eax, eax
jmp 0x4452cf
cwde
add eax, ecx
mov dl, byte [esp + 0x23]
mov ax, word [eax]
mov word [esi + 0x1e], ax
test dl, dl
je 0x4452e2
xor eax, eax
jmp 0x4452f9
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 0xe]
cmp ax, word [ecx + 0x10]
jne 0x4452f4
xor eax, eax
jmp 0x4452f7
cwde
add eax, ecx
mov eax, dword [eax]
mov word [esi + 0x20], ax
test dl, dl
je 0x445305
xor eax, eax
jmp 0x44531d
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 0x10]
cmp ax, word [ecx + 0x12]
jne 0x445317
xor eax, eax
jmp 0x44531a
cwde
add eax, ecx
movsx eax, byte [eax]
mov byte [esi + 0x22], al
test dl, dl
jne 0x44533b
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 0x12]
cmp ax, word [ecx + 0x14]
je 0x44533b
cwde
add eax, ecx
je 0x44533b
mov eax, dword [eax]
jmp 0x44533d
xor eax, eax
mov dword [esi + 0x23], eax
test dl, dl
jne 0x44535b
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 0x14]
cmp ax, word [ecx + 0x16]
je 0x44535b
cwde
add eax, ecx
je 0x44535b
mov eax, dword [eax]
jmp 0x44535d
xor eax, eax
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x27], eax
cmp byte [ecx], 0
je 0x4451ba
mov dword [esi + 4], 0
jmp case.default.0x444fb1
movzx eax, word [ecx]
cmp ax, word [ecx + 2]
je 0x445395
movsx edx, ax
add ecx, edx
je 0x445395
mov eax, dword [ecx]
mov dword [0x6a0a7c], eax
jmp case.default.0x444fb1
mov dword [0x6a0a7c], 0xffffffff
jmp case.default.0x444fb1
movzx eax, word [ecx]
mov edx, dword [0x625952]
mov edx, dword [edx + 0xc6]
cmp ax, word [ecx + 2]
jne 0x4453bd
xor eax, eax
jmp 0x4453c0
cwde
add eax, ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx, 0x16
lea esi, [ecx + edx]
mov edx, dword [eax]
mov dword [esi + 8], edx
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 2]
cmp cx, word [eax + 4]
jne 0x4453e1
xor ebx, ebx
jmp 0x4453e6
movsx ebx, cx
add ebx, eax
lea eax, [esi + 0xc]
call fcn.00443860
test eax, eax
je 0x44540c
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 4]
cmp ax, word [ecx + 6]
jne 0x445404
xor eax, eax
jmp 0x445407
cwde
add eax, ecx
mov al, byte [eax]
mov byte [esi + 0x14], al
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 6]
cmp ax, word [ecx + 8]
jne 0x44541e
xor eax, eax
jmp 0x445421
cwde
add eax, ecx
mov cl, byte [eax]
mov byte [esi + 0x15], cl
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 8]
cmp cx, word [eax + 0xa]
jne 0x445438
xor ebx, ebx
jmp 0x44543d
movsx ebx, cx
add ebx, eax
lea eax, [esi + 0x10]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov edx, dword [esp + 0x14]
cmp byte [edx], al
jne 0x44536d
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
mov dword [esi + 4], edx
jmp case.default.0x444fb1
mov eax, dword [0x625952]
mov edx, dword [eax + 0xb3]
movzx eax, word [ecx]
cmp ax, word [ecx + 2]
jne 0x445484
xor ebx, ebx
jmp 0x445489
movsx ebx, ax
add ebx, ecx
mov eax, dword [esp + 0x1c]
lea ecx, [eax + eax*2]
lea esi, [edx + ecx*8]
lea eax, [esi + 0xc]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 2]
cmp cx, word [eax + 4]
jne 0x4454b7
xor ebx, ebx
jmp 0x4454bc
movsx ebx, cx
add ebx, eax
lea eax, [esi + 0x10]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 4]
cmp cx, word [eax + 6]
jne 0x4454e0
xor ebx, ebx
jmp 0x4454e5
movsx ebx, cx
add ebx, eax
lea eax, [esi + 0x14]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 6]
cmp ax, word [ecx + 8]
jne 0x445509
xor eax, eax
jmp 0x44550c
cwde
add eax, ecx
mov edx, dword [eax]
mov eax, dword [esp + 0x14]
mov dword [esi + 8], edx
cmp byte [eax], 0
jne 0x44536d
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 4]
mov eax, dword [edx]
mov dword [esi + 4], eax
jmp case.default.0x444fb1
movzx eax, word [ecx]
mov edx, dword [0x625952]
mov edx, dword [edx + 0x67]
cmp ax, word [ecx + 2]
jne 0x445545
xor eax, eax
jmp 0x445548
cwde
add eax, ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx, 0x31
lea esi, [ecx + edx]
mov edx, dword [eax]
mov dword [esi + 8], edx
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 2]
cmp cx, word [eax + 4]
jne 0x445569
xor ebx, ebx
jmp 0x44556e
movsx ebx, cx
add ebx, eax
lea eax, [esi + 0xc]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 4]
cmp ax, word [ecx + 6]
jne 0x445592
xor eax, eax
jmp 0x445595
cwde
add eax, ecx
mov ax, word [eax]
mov word [esi + 0x10], ax
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 6]
cmp ax, word [ecx + 8]
jne 0x4455ae
xor eax, eax
jmp 0x4455b1
cwde
add eax, ecx
mov cx, word [eax]
mov word [esi + 0x12], cx
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 8]
cmp ax, word [ecx + 0xa]
jne 0x4455ca
xor eax, eax
jmp 0x4455cd
cwde
add eax, ecx
mov dl, byte [eax]
mov byte [esi + 0x18], dl
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 0xa]
cmp ax, word [ecx + 0xc]
jne 0x4455e4
xor eax, eax
jmp 0x4455e7
cwde
add eax, ecx
mov eax, dword [eax]
mov dword [esi + 0x14], eax
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 0xc]
cmp ax, word [ecx + 0xe]
je 0x445603
cwde
add eax, ecx
je 0x445603
mov eax, dword [eax]
jmp 0x445606
or eax, 0xffffffff
mov dword [esi + 0x1a], eax
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 0xe]
cmp ax, word [ecx + 0x10]
je 0x445620
cwde
add eax, ecx
je 0x445620
mov eax, dword [eax]
jmp 0x445623
or eax, 0xffffffff
mov dword [esi + 0x1e], eax
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 0x10]
cmp ax, word [ecx + 0x12]
je 0x44563d
cwde
add eax, ecx
je 0x44563d
mov eax, dword [eax]
jmp 0x445640
or eax, 0xffffffff
mov dword [esi + 0x22], eax
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 0x12]
cmp ax, word [ecx + 0x14]
je 0x44565a
cwde
add eax, ecx
je 0x44565a
mov eax, dword [eax]
jmp 0x44565d
or eax, 0xffffffff
mov dword [esi + 0x26], eax
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 0x14]
cmp ax, word [ecx + 0x16]
je 0x445673
cwde
add eax, ecx
jne 0x44567a
mov eax, 0x63
jmp 0x4456e1
mov edx, str.word
mov ecx, eax
mov bl, byte [ecx]
cmp bl, byte [edx]
jne 0x4456a1
test bl, bl
je 0x44569d
mov bl, byte [ecx + 1]
cmp bl, byte [edx + 1]
jne 0x4456a1
add ecx, 2
add edx, 2
test bl, bl
jne 0x445681
xor ecx, ecx
jmp 0x4456a6
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x4456af
or eax, 0xffffffff
jmp 0x4456e1
mov ecx, str.positional
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4456d4
test dl, dl
je 0x4456d0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4456d4
add eax, 2
add ecx, 2
test dl, dl
jne 0x4456b4
xor eax, eax
jmp 0x4456d9
sbb eax, eax
sbb eax, 0xffffffff
neg eax
sbb eax, eax
and eax, 0x62
inc eax
mov byte [esi + 0x2b], al
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 0x16]
cmp ax, word [ecx + 0x18]
je 0x4456f7
cwde
add eax, ecx
jne 0x4456fe
mov eax, 0x63
jmp 0x445767
mov edx, 0x5ab5e4
mov ecx, eax
mov bl, byte [ecx]
cmp bl, byte [edx]
jne 0x445725
test bl, bl
je 0x445721
mov bl, byte [ecx + 1]
cmp bl, byte [edx + 1]
jne 0x445725
add ecx, 2
add edx, 2
test bl, bl
jne 0x445705
xor ecx, ecx
jmp 0x44572a
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x445733
lea eax, [ecx + 2]
jmp 0x445767
mov ecx, 0x5ab5e0
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x445758
test dl, dl
je 0x445754
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x445758
add eax, 2
add ecx, 2
test dl, dl
jne 0x445738
xor eax, eax
jmp 0x44575d
sbb eax, eax
sbb eax, 0xffffffff
neg eax
sbb eax, eax
and eax, 0x65
add eax, 0xfffffffe
mov byte [esi + 0x2a], al
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 0x1a]
cmp ax, word [ecx + 0x1c]
jne 0x44577c
xor eax, eax
jmp 0x44577f
cwde
add eax, ecx
lea ecx, [esi + 0x2d]
push ecx
lea edx, [esi + 0x19]
push edx
lea ecx, [esi + 0x2c]
push ecx
push 0
push eax
call fcn.00442ab0
add esp, 0x14
mov edi, eax
test edi, edi
jne 0x445ead
mov edx, dword [esp + 0x14]
cmp byte [edx], 0
je 0x44545b
mov dword [esi + 4], 0
jmp case.default.0x444fb1
mov esi, dword [esp + 0x14]
cmp byte [esi], 0
mov eax, dword [0x625952]
mov eax, dword [eax + 0xa0]
je 0x4457ff
movzx edx, word [ecx]
cmp dx, word [ecx + 2]
jne 0x4457e9
mov ecx, dword [esp + 0x1c]
xor edx, edx
mov edx, dword [edx]
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*8]
mov dword [eax + 8], edx
jmp 0x445818
movsx edx, dx
add edx, ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [edx]
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*8]
mov dword [eax + 8], edx
jmp 0x445818
mov ecx, dword [esp + 0x1c]
mov edx, dword [str.public]
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*8]
mov ecx, dword [edx + 0x120]
mov dword [eax + 8], ecx
mov edx, dword [esp + 0x10]
movzx ecx, word [edx + 2]
cmp cx, word [edx + 4]
jne 0x44582a
xor ecx, ecx
jmp 0x44582f
movsx ecx, cx
add ecx, edx
mov edx, dword [ecx]
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0x10]
movzx ecx, word [edx + 4]
cmp cx, word [edx + 6]
jne 0x445846
xor ecx, ecx
jmp 0x44584b
movsx ecx, cx
add ecx, edx
mov ecx, dword [ecx]
mov dword [eax + 0xc], ecx
mov edx, dword [esp + 0x10]
movzx ecx, word [edx + 6]
cmp cx, word [edx + 8]
jne 0x445862
xor ecx, ecx
jmp 0x445867
movsx ecx, cx
add ecx, edx
mov dl, byte [ecx]
mov byte [eax + 0x14], dl
mov edx, dword [esp + 0x10]
movzx ecx, word [edx + 8]
cmp cx, word [edx + 0xa]
jne 0x44587e
xor ecx, ecx
jmp 0x445883
movsx ecx, cx
add ecx, edx
mov cl, byte [ecx]
mov byte [eax + 0x15], cl
mov edx, dword [esp + 0x10]
movzx ecx, word [edx + 0xa]
cmp cx, word [edx + 0xc]
jne 0x44589a
xor ecx, ecx
jmp 0x44589f
movsx ecx, cx
add ecx, edx
mov dl, byte [ecx]
mov byte [eax + 0x16], dl
mov edx, dword [esp + 0x10]
movzx ecx, word [edx + 0xc]
cmp cx, word [edx + 0xe]
jne 0x4458b6
xor ecx, ecx
jmp 0x4458bb
movsx ecx, cx
add ecx, edx
mov cl, byte [ecx]
mov byte [eax + 0x17], cl
cmp byte [esi], 0
je 0x4458d1
mov dword [eax + 4], 0
jmp case.default.0x444fb1
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 8]
mov edx, dword [ecx]
mov dword [eax + 4], edx
jmp case.default.0x444fb1
mov eax, dword [0x625952]
mov edx, dword [eax + 0x2e]
movzx eax, word [ecx]
cmp ax, word [ecx + 2]
jne 0x4458f7
xor eax, eax
jmp 0x4458fa
cwde
add eax, ecx
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx + ecx*4]
lea ebx, [edx + ecx*4]
mov edx, dword [eax]
mov dword [ebx + 4], edx
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 2]
cmp ax, word [ecx + 4]
jne 0x44591b
xor eax, eax
jmp 0x44591e
cwde
add eax, ecx
mov eax, dword [eax]
mov dword [ebx + 0xc], eax
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 4]
cmp ax, word [ecx + 6]
jne 0x445935
xor eax, eax
jmp 0x445938
cwde
add eax, ecx
cmp dword [ebx + 0x10], 0
mov ecx, dword [eax]
lea esi, [ebx + 0x10]
mov dword [ebx + 8], ecx
jne 0x44595a
mov edi, 0x100
call fcn.004437f0
mov edi, eax
test edi, edi
jne 0x445ead
mov edx, dword [esi]
push 0x100
push 0x4e
push edx
call sub.MSVCR90.dll_memset
mov eax, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
je case.default.0x444fb1
jmp 0x445980
movzx ecx, word [eax + 4]
movzx edi, word [eax + 6]
cmp cx, di
jne 0x445991
xor ecx, ecx
jmp 0x445996
movsx ecx, cx
add ecx, eax
mov ecx, dword [ecx]
cmp ecx, dword [ebx + 8]
jne case.default.0x444fb1
movzx ecx, word [eax + 8]
cmp cx, word [eax + 0xa]
jne 0x4459af
xor edx, edx
jmp 0x4459b4
movsx edx, cx
add edx, eax
cmp di, cx
jne 0x4459bd
xor ecx, ecx
jmp 0x4459c2
movsx ecx, di
add ecx, eax
mov eax, dword [ecx]
mov ecx, dword [esi]
mov dl, byte [edx]
mov byte [eax + ecx - 1], dl
mov ecx, dword [0x62594e]
mov edx, dword [ecx + ebp]
push 0
lea eax, [esp + 0x14]
push eax
push edx
call fcn.00490540
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x445ead
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x445980
jmp case.default.0x444fb1
mov eax, dword [0x625952]
mov edx, dword [eax + 0xd9]
movzx eax, word [ecx]
cmp ax, word [ecx + 2]
jne 0x445e26
xor eax, eax
jmp 0x445e29
movzx eax, word [ecx + 2]
mov edx, dword [0x625952]
mov edx, dword [edx + 0x54]
cmp ax, word [ecx + 4]
jne 0x445a32
xor eax, eax
jmp 0x445a35
cwde
add eax, ecx
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx + ecx*8]
lea esi, [edx + ecx*4]
mov edx, dword [eax]
mov dword [esi + 0xc], edx
mov eax, dword [esp + 0x10]
movzx ecx, word [eax]
cmp cx, word [eax + 2]
jne 0x445a55
xor ebx, ebx
jmp 0x445a5a
movsx ebx, cx
add ebx, eax
lea eax, [esi + 8]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 4]
cmp cx, word [eax + 6]
jne 0x445a7e
xor ebx, ebx
jmp 0x445a83
movsx ebx, cx
add ebx, eax
lea eax, [esi + 0x10]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 6]
cmp cx, word [eax + 8]
jne 0x445aa7
xor ebx, ebx
jmp 0x445aac
movsx ebx, cx
add ebx, eax
lea eax, [esi + 0x14]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 8]
cmp cx, word [eax + 0xa]
jne 0x445ad0
xor ebx, ebx
jmp 0x445ad5
movsx ebx, cx
add ebx, eax
lea eax, [esi + 0x18]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 0xa]
cmp cx, word [eax + 0xc]
jne 0x445af9
xor ebx, ebx
jmp 0x445afe
movsx ebx, cx
add ebx, eax
lea eax, [esi + 0x1c]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 0xc]
cmp cx, word [eax + 0xe]
jne 0x445b22
xor ebx, ebx
jmp 0x445b27
movsx ebx, cx
add ebx, eax
lea eax, [esi + 0x20]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov eax, dword [esp + 0x14]
cmp byte [eax], 0
jne 0x44536d
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 8]
mov eax, dword [edx]
mov dword [esi + 4], eax
jmp case.default.0x444fb1
movzx eax, word [ecx]
mov edx, dword [0x625952]
mov edx, dword [edx + 0x41]
cmp ax, word [ecx + 2]
jne 0x445b6d
xor eax, eax
jmp 0x445b70
cwde
add eax, ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax]
lea esi, [ecx*8]
sub esi, ecx
lea esi, [edx + esi*4]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 2]
cmp cx, word [eax + 4]
jne 0x445b97
xor ebx, ebx
jmp 0x445b9c
movsx ebx, cx
add ebx, eax
lea eax, [esi + 8]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 4]
cmp cx, word [eax + 6]
jne 0x445bc0
xor ebx, ebx
jmp 0x445bc5
movsx ebx, cx
add ebx, eax
lea eax, [esi + 0x10]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 6]
cmp cx, word [eax + 8]
jne 0x445be9
xor ebx, ebx
jmp 0x445bee
movsx ebx, cx
add ebx, eax
lea eax, [esi + 0x14]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 8]
cmp cx, word [eax + 0xa]
je 0x445c1f
movsx ecx, cx
add eax, ecx
je 0x445c1f
mov eax, dword [eax]
mov dword [esi + 0x18], eax
jmp 0x4457a0
or eax, 0xffffffff
mov dword [esi + 0x18], eax
jmp 0x4457a0
mov eax, dword [0x625952]
mov edx, dword [eax + 0x7a]
movzx eax, word [ecx]
cmp ax, word [ecx + 2]
jne 0x445c3f
xor ebx, ebx
jmp 0x445c44
movsx ebx, ax
add ebx, ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx, 0x26
lea esi, [ecx + edx]
lea eax, [esi + 8]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 2]
cmp cx, word [eax + 4]
jne 0x445c72
xor ebx, ebx
jmp 0x445c77
movsx ebx, cx
add ebx, eax
lea eax, [esi + 0xc]
call fcn.00443860
mov edi, eax
test edi, edi
jne 0x445ead
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 4]
cmp ax, word [ecx + 6]
jne 0x445c9b
xor eax, eax
jmp 0x445c9e
cwde
add eax, ecx
mov edx, dword [eax]
mov dword [esi + 0x10], edx
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 6]
cmp ax, word [ecx + 8]
jne 0x445cb5
xor eax, eax
jmp 0x445cb8
cwde
add eax, ecx
mov eax, dword [eax]
mov dword [esi + 0x14], eax
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 8]
cmp ax, word [ecx + 0xa]
jne 0x445ccf
xor eax, eax
jmp 0x445cd2
cwde
add eax, ecx
mov ecx, dword [eax]
mov dword [esi + 0x18], ecx
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 0xa]
cmp ax, word [ecx + 0xc]
jne 0x445ce9
xor eax, eax
jmp 0x445cec
cwde
add eax, ecx
mov edx, dword [eax]
mov dword [esi + 0x1c], edx
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 0xc]
cmp ax, word [ecx + 0xe]
jne 0x445d03
xor eax, eax
jmp 0x445d06
cwde
add eax, ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00442c60
mov edi, eax
add esp, 8
test edi, edi
jne 0x445ead
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 0xe]
cmp ax, word [ecx + 0x10]
jne 0x445d3f
xor eax, eax
push eax
lea ecx, [esi + 0x21]
push ecx
call fcn.00442c60
add esp, 8
jmp 0x445796
cwde
add eax, ecx
push eax
lea ecx, [esi + 0x21]
push ecx
call fcn.00442c60
add esp, 8
jmp 0x445796
mov eax, dword [0x625952]
mov esi, dword [eax + 0xec]
movzx eax, word [ecx]
cmp ax, word [ecx + 2]
jne 0x445d6c
xor edx, edx
jmp 0x445d71
movsx edx, ax
add edx, ecx
mov eax, dword [esp + 0x1c]
mov edx, dword [edx]
lea ecx, [eax*8]
sub ecx, eax
lea eax, [esi + ecx*4]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x10]
movzx ecx, word [edx + 2]
cmp cx, word [edx + 4]
jne 0x445d98
xor ecx, ecx
jmp 0x445d9d
movsx ecx, cx
add ecx, edx
mov ecx, dword [ecx]
mov dword [eax + 0xc], ecx
mov edx, dword [esp + 0x10]
movzx ecx, word [edx + 4]
cmp cx, word [edx + 6]
jne 0x445db4
xor ecx, ecx
jmp 0x445db9
movsx ecx, cx
add ecx, edx
mov edx, dword [ecx]
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0x10]
movzx ecx, word [edx + 6]
cmp cx, word [edx + 8]
jne 0x445dd0
xor ecx, ecx
jmp 0x445dd5
movsx ecx, cx
add ecx, edx
mov ecx, dword [ecx]
mov dword [eax + 0x14], ecx
mov edx, dword [esp + 0x10]
movzx ecx, word [edx + 8]
cmp cx, word [edx + 0xa]
jne 0x445dec
xor ecx, ecx
jmp 0x445df1
movsx ecx, cx
add ecx, edx
mov edx, dword [ecx]
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x18], edx
cmp byte [ecx], 0
jne 0x4458c5
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 4]
mov edx, dword [ecx]
mov dword [eax + 4], edx
jmp case.default.0x444fb1
mov eax, dword [0x625952]
mov edx, dword [eax + 8]
movzx eax, word [ecx]
cmp ax, word [ecx + 2]
jne 0x445e26
xor eax, eax
jmp 0x445e29
cwde
add eax, ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax]
lea ecx, [ecx + ecx*2]
lea edx, [edx + ecx*4]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 2]
cmp cx, word [eax + 4]
jne 0x445e4a
xor ecx, ecx
jmp 0x445e4f
movsx ecx, cx
add ecx, eax
mov ecx, dword [ecx]
mov dword [edx + 8], ecx
mov eax, dword [esp + 0x24]
mov esi, dword [0x625952]
lea edx, [eax + eax*4]
mov ecx, dword [edx*8 + 0x62554c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x38]
imul ecx, eax
mov edx, dword [edx + esi + 8]
mov dword [ecx + edx], 0xffffffff
mov ecx, dword [esp + 0x40]
mov dword [ecx], eax
jmp 0x445ee3
mov edx, dword [0x62594e]
mov eax, dword [esp + 0x2c]
mov byte [eax + edx + 0xc], 0
mov ecx, dword [0x62594e]
mov edx, dword [ecx + ebp]
push edx
call fcn.00491490
mov edi, eax
add esp, 4
test edi, edi
je 0x445ed9
mov eax, dword [0x62594e]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x3c]
mov byte [ecx + eax + 0xc], 0
mov eax, dword [edx + 0x6257e0]
push eax
push 0x7d6
push 0
call fcn.00406f10
add esp, 0xc
mov eax, edi
jmp 0x445ee5
mov ecx, dword [esp + 0x40]
mov dword [ecx], 0xffffffff
xor eax, eax
mov ecx, dword [esp + 0x1cc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00586584
add esp, 0x1c0
ret