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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x288
mov bl, byte [ebp + 0x10]
lea eax, [esp + 0xf4]
push 0x190
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov dword [esp + 0xbc], 0
mov byte [esp + 0x2b], 0
mov byte [esp + 0x2a], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x8c], 0x47bc30
mov dword [esp + 0x90], 0x54d7d4
mov dword [esp + 0x94], ebp
mov dword [esp + 0x9c], esp
mov dword [esp + 0x98], 0x45061e
mov dword [esp + 0x78], 1
lea eax, [esp + 0x74]
push eax
call fcn.0047cc80
add esp, 4
movzx edx, bl
lea ebx, [esp + 0x70]
lea esi, [esp + 0x40]
lea ecx, [esp + 0x50]
lea edi, [esp + 0xa8]
lea eax, [esp + 0xbc]
push ebx
push esi
push ecx
lea ecx, [esp + 0x6c]
push ecx
push edi
lea ecx, [esp + 0x3e]
push ecx
lea ecx, [esp + 0x43]
push ecx
push eax
push dword [ebp + 0x14]
push edx
call fcn.00450ae0
add esp, 0x28
mov eax, dword [ebp + 0x28]
mov edx, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov eax, dword [eax]
shr ecx, 9
and ecx, 1
mov dword [esp + 0xe4], ecx
lea ecx, [esp + 0x284]
mov dword [esp + 0x6c], ecx
mov ecx, 0x423c60
mov dword [edx], eax
mov edx, dword [ebp + 0x30]
mov dword [esp + 0xb8], edx
lea edx, [esp + 0xf4]
mov dword [esp + 0x2c], edx
jmp 0x44f134
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x28]
mov eax, dword [eax]
cmp eax, dword [ecx]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
je 0x4501de
nop word [eax + eax]
mov esi, dword [esp + 0x14]
inc esi
cmp esi, 4
mov eax, esi
mov dword [esp + 0x14], esi
je 0x45005d
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov edx, 0
mov ecx, dword [eax]
test ecx, ecx
je 0x44f190
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x44f160
mov edx, ecx
jmp 0x44f190
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 2
call eax
cmp eax, 0xffffffff
je 0x44f17b
mov eax, dword [ebp + 8]
mov edx, dword [eax]
jmp 0x44f190
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax], 0
nop word cs:[eax + eax]
lea eax, [ebp + 0xc]
mov ecx, dword [eax]
test ecx, ecx
je 0x44f1e0
mov eax, dword [ecx + 0xc]
mov dword [esp + 4], ecx
cmp eax, dword [ecx + 0x10]
jne 0x44f1c1
mov eax, dword [ecx]
mov dword [esp + 0x10], edx
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 3
call eax
mov edx, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x44f1d2
test edx, edx
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
je 0x44f1f8
jmp 0x45005d
lea eax, [ebp + 0xc]
mov dword [eax], 0
nop dword [eax + eax]
mov dword [esp + 4], 0
test edx, edx
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
je 0x45005d
mov eax, dword [esp + 0x14]
movsx eax, byte [esp + eax + 0xbc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
cmp eax, 4
ja case.default.0x44f215
jmp dword [eax*4 + 0x450660]
cmp dword [esp + 0x14], 3
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
jne 0x44f701
jmp 0x45005d
mov ebx, dword [esp + 8]
mov edx, dword [esp + 0xc]
xor edi, edi
jmp 0x44f244
inc eax
mov dword [ecx + 0xc], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], ebx
mov edx, 0
mov dword [esp + 4], edi
mov ecx, dword [eax]
test ecx, ecx
je 0x44f2b0
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x44f270
mov edx, ecx
jmp 0x44f2b0
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd4], esi
mov dword [esp + 0x78], 0x18
call eax
mov edi, dword [esp + 4]
cmp eax, 0xffffffff
je 0x44f2a5
mov eax, dword [ebp + 8]
mov edx, dword [eax]
jmp 0x44f2b0
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax], 0
lea eax, [ebp + 0xc]
mov ecx, dword [eax]
test ecx, ecx
je 0x44f310
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
jne 0x44f2f7
mov eax, dword [ecx]
mov dword [esp + 0x10], edx
mov eax, dword [eax + 0x24]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd4], esi
mov dword [esp + 0x78], 0x19
call eax
mov edi, dword [esp + 4]
mov edx, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x44f300
test edx, edx
je 0x44f318
jmp 0x44f5e0
lea eax, [ebp + 0xc]
mov dword [eax], 0
nop dword [eax]
test edx, edx
je 0x44f5e0
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x44f330
movzx ebx, byte [eax]
test bl, bl
jns 0x44f349
jmp 0x44f35c
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 0x1a
call eax
mov edi, dword [esp + 4]
mov ebx, eax
test bl, bl
js 0x44f35c
mov ecx, dword [ebp + 0x24]
movzx eax, bl
mov ecx, dword [ecx + 8]
test byte [ecx + eax*2], 4
jne 0x44f3f0
movzx eax, byte [esp + 0xa8]
test al, 1
je 0x44f380
mov eax, dword [esp + 0xac]
cmp byte [esp + 0x2a], bl
je 0x44f38c
jmp 0x44f5e0
shr eax, 1
cmp byte [esp + 0x2a], bl
jne 0x44f5e0
test edi, edi
je 0x44f5e0
test eax, eax
je 0x44f5e0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
cmp eax, ecx
jne 0x44f476
mov eax, dword [esp + 0x24]
sub ecx, dword [esp + 0x1c]
mov ebx, 4
lea esi, [ecx + ecx]
test ecx, ecx
mov edx, ecx
cmove esi, ebx
cmp edx, 0x7fffffff
mov edx, 0xffffffff
cmovae esi, edx
cmp eax, 0x423c60
je 0x44f44b
push esi
push dword [esp + 0x20]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
jmp 0x44f454
mov ecx, dword [ebp + 0x2c]
mov eax, dword [esp + 0xb8]
mov esi, dword [ecx]
cmp esi, eax
jne 0x44f4ba
mov edx, eax
mov eax, dword [ebp + 0x28]
mov ecx, dword [eax]
sub edx, ecx
mov dword [esp + 0x10], ecx
mov ecx, 1
lea edi, [edx + edx]
test edx, edx
cmove edi, ecx
cmp edx, 0x7fffffff
mov edx, 0xffffffff
cmovae edi, edx
cmp dword [eax + 4], 0x423c60
je 0x44f483
push edi
push dword [esp + 0x14]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
test eax, eax
jne 0x44f494
jmp 0x450435
push esi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov edx, eax
test eax, eax
je 0x450428
mov eax, dword [esp + 0x2c]
and esi, 0xfffffffc
mov ebx, fcn.0047d120
add esi, edx
sub eax, dword [esp + 0x1c]
mov dword [esp + 0x6c], esi
add eax, edx
mov dword [eax], edi
add eax, 4
xor edi, edi
mov dword [esp + 0x2c], eax
jmp 0x44f4ca
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
test eax, eax
je 0x450435
sub esi, dword [esp + 0x10]
mov ecx, dword [ebp + 0x28]
mov edx, dword [ebp + 0x2c]
add esi, eax
mov dword [ecx], eax
mov dword [ecx + 4], fcn.0047d120
mov dword [edx], esi
add edi, dword [ecx]
mov ecx, edx
mov dword [esp + 0xb8], edi
mov edi, dword [esp + 4]
lea eax, [esi + 1]
inc edi
mov dword [ecx], eax
mov byte [esi], bl
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
jne 0x44f240
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0x78], 0x1d
mov dword [esp + 4], edi
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], ebx
call eax
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 4]
jmp 0x44f244
cmp dword [esp + 0x18], 0
jne 0x44f54b
cmp dword [esp + 0x14], 2
jb 0x44f54b
sete al
cmp byte [esp + 0xbf], 0
setne ah
and ah, al
or ah, byte [esp + 0xe4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
cmp ah, 1
jne 0x44f841
movzx eax, byte [esp + 0x60]
mov dword [esp + 0x10], eax
test al, 1
lea eax, [esp + 0x61]
je 0x44f560
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x14]
test edx, edx
je 0x44f962
lea ecx, [esp + 0xbc]
mov edi, eax
cmp byte [edx + ecx - 1], 1
ja 0x44f964
mov ecx, dword [esp + 0x10]
test cl, 1
je 0x44f8af
mov esi, dword [esp + 0x64]
test esi, esi
jne 0x44f8b7
jmp 0x44f8f1
movzx eax, byte [esp + 0x50]
mov bh, al
mov dword [esp + 4], eax
and bh, 1
je 0x44f61d
mov esi, dword [esp + 0x54]
jmp 0x44f621
cmp dword [esp + 0x14], 3
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
je 0x45005d
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x44f674
movzx eax, byte [eax]
jmp 0x44f683
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
je 0x44fc00
test edi, edi
je 0x44fc00
mov edx, dword [esp + 0x6c]
cmp dword [esp + 0x2c], edx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
je 0x44f867
mov edx, dword [esp + 0x2c]
jmp 0x44fbf7
mov esi, eax
shr esi, 1
movzx eax, byte [esp + 0x40]
mov bl, al
and bl, 1
je 0x44f633
mov edi, dword [esp + 0x44]
jmp 0x44f637
mov edi, eax
shr edi, 1
mov ecx, esi
add ecx, edi
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
je case.default.0x44f215
test esi, esi
je 0x44f84e
mov eax, dword [ebp + 8]
test edi, edi
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x10]
je 0x44fb09
cmp eax, esi
je 0x44fb19
movzx edx, byte [eax]
jmp 0x44fb42
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 4
call eax
test al, al
js 0x4502a1
mov ecx, dword [ebp + 0x24]
movzx eax, al
mov ecx, dword [ecx + 8]
test byte [ecx + eax*2], 8
je 0x4502a1
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x44f6b6
lea edx, [eax + 1]
mov dword [ecx + 0xc], edx
movzx eax, byte [eax]
jmp 0x44f6c5
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x78], 5
call eax
mov dword [esp + 0x78], 6
movsx eax, al
lea ecx, [esp + 0xc0]
push eax
call fcn.0041dc90
jmp 0x44f701
lea edx, [eax + 1]
mov dword [ecx + 0xc], edx
movzx eax, byte [eax]
mov dword [esp + 0x78], 0xb
movsx eax, al
lea ecx, [esp + 0xc0]
push eax
call fcn.0041dc90
mov eax, dword [ebp + 8]
xor edx, edx
mov ecx, dword [eax]
test ecx, ecx
je 0x44f716
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x44f760
mov edx, ecx
mov ecx, dword [esp + 4]
test ecx, ecx
je 0x44f7b0
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
jne 0x44f746
mov eax, dword [ecx]
mov dword [esp + 0x10], edx
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 8
call eax
mov edx, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x44f798
test edx, edx
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
je 0x44f7c8
jmp case.default.0x44f215
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 7
call eax
cmp eax, 0xffffffff
je 0x44f783
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [eax]
test ecx, ecx
jne 0x44f722
jmp 0x44f7b0
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 4]
xor edx, edx
mov dword [eax], 0
test ecx, ecx
jne 0x44f722
jmp 0x44f7b0
lea eax, [ebp + 0xc]
mov dword [eax], 0
nop word cs:[eax + eax]
nop dword [eax + eax]
mov dword [esp + 4], 0
test edx, edx
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
je case.default.0x44f215
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x44f7e0
movzx eax, byte [eax]
jmp 0x44f7ef
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 9
call eax
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
test al, al
js case.default.0x44f215
mov ecx, dword [ebp + 0x24]
movzx eax, al
mov ecx, dword [ecx + 8]
movzx eax, word [ecx + eax*2]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
test al, 8
je case.default.0x44f215
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
jne 0x44f6e0
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x78], 0xa
call eax
jmp 0x44f6e9
mov dword [esp + 0x18], 0
jmp case.default.0x44f215
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0xc]
cmp edx, dword [ecx + 0x10]
je 0x44fb7e
movzx ecx, byte [edx]
jmp 0x44fb98
mov eax, dword [esp + 0x24]
sub edx, dword [esp + 0x1c]
mov ecx, 4
lea esi, [edx + edx]
test edx, edx
cmove esi, ecx
cmp edx, 0x7fffffff
mov edx, 0xffffffff
cmovae esi, edx
cmp eax, 0x423c60
je 0x44fbce
push esi
push dword [esp + 0x20]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
test eax, eax
jne 0x44fbdf
jmp 0x450442
mov esi, ecx
shr esi, 1
test esi, esi
je 0x44f8f1
mov cl, byte [eax]
test cl, cl
js 0x44f8f1
lea edx, [eax + esi]
lea ebx, [eax + 1]
dec esi
mov dword [esp + 0x30], edx
mov edx, dword [ebp + 0x24]
mov edi, dword [edx + 8]
mov edx, eax
movzx ecx, cl
test byte [edi + ecx*2], 8
je 0x44f8f3
test esi, esi
je 0x450010
movzx ecx, byte [ebx]
mov edx, ebx
inc ebx
dec esi
test cl, cl
jns 0x44f8d0
dec ebx
mov edx, ebx
jmp 0x44f8f3
mov edx, eax
movzx ebx, byte [esp + 0xc0]
mov esi, edx
sub esi, eax
test bl, 1
jne 0x44f91c
shr ebx, 1
mov edi, eax
cmp esi, ebx
ja 0x44f964
lea ecx, [esp + ebx + 0xc1]
lea edi, [esp + 0xc1]
jmp 0x44f933
mov ebx, dword [esp + 0xc4]
mov edi, eax
cmp esi, ebx
ja 0x44f964
mov edi, dword [esp + 0xc8]
lea ecx, [edi + ebx]
mov dword [esp + 0x30], ecx
sub ecx, esi
lea esi, [edi + ebx]
cmp ecx, esi
je 0x44f95e
add ebx, edx
xor esi, esi
sub ebx, dword [esp + 0x30]
sub ebx, eax
add edi, ebx
nop dword [eax]
movzx ebx, byte [ecx + esi]
cmp bl, byte [eax + esi]
jne 0x44f962
inc esi
cmp edi, esi
jne 0x44f950
mov edi, edx
jmp 0x44f964
mov edi, eax
mov ecx, dword [esp + 0x10]
test cl, 1
je 0x44f973
mov ecx, dword [esp + 0x64]
jmp 0x44f978
shr cl, 1
movzx ecx, cl
add eax, ecx
cmp eax, edi
jne 0x44f9be
mov ecx, dword [esp + 8]
test dword [ebp + 0x18], 0x200
mov edx, dword [esp + 0xc]
je case.default.0x44f215
movzx eax, byte [esp + 0x60]
test al, 1
je 0x44faec
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
jmp 0x44faf2
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
add ecx, eax
cmp edi, ecx
je 0x44f97e
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [esp + 0x10], edi
mov ecx, dword [eax]
test ecx, ecx
je 0x44f9d7
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x44fa20
mov edx, ecx
mov ecx, dword [esp + 4]
test ecx, ecx
je 0x44fa70
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
jne 0x44fa0f
mov eax, dword [ecx]
mov dword [esp + 0x30], edx
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 0x15
call eax
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x30]
cmp eax, 0xffffffff
je 0x44fa5c
test edx, edx
je 0x44fa7a
jmp 0x44f97e
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 0x14
call eax
mov edi, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x44fa47
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [eax]
test ecx, ecx
jne 0x44f9e3
jmp 0x44fa70
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 4]
xor edx, edx
mov dword [eax], 0
test ecx, ecx
jne 0x44f9e3
jmp 0x44fa70
lea eax, [ebp + 0xc]
mov dword [eax], 0
nop word cs:[eax + eax]
nop
xor ecx, ecx
test edx, edx
je 0x44f97e
mov eax, dword [ebp + 8]
mov dword [esp + 4], ecx
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x44fa90
movzx eax, byte [eax]
jmp 0x44faa3
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 0x16
call eax
mov edi, dword [esp + 0x10]
cmp byte [edi], al
jne 0x44f97e
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x44fac0
inc eax
mov dword [ecx + 0xc], eax
jmp 0x44fad3
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x78], 0x17
call eax
mov edi, dword [esp + 0x10]
movzx eax, byte [esp + 0x60]
inc edi
test al, 1
jne 0x44f9b0
shr eax, 1
lea ecx, [esp + 0x61]
jmp 0x44f9b8
shr eax, 1
lea ecx, [esp + 0x61]
add ecx, eax
cmp edi, ecx
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
je case.default.0x44f215
jmp 0x4502a1
cmp eax, esi
je 0x44fef5
movzx ecx, byte [eax]
jmp 0x44ff13
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 0x10
call eax
mov edx, eax
mov eax, dword [ebp + 8]
mov bl, byte [esp + 0x50]
mov ecx, dword [eax]
mov dword [esp + 4], ebx
mov bh, bl
and bh, 1
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x10]
test bh, bh
lea edi, [esp + 0x51]
je 0x44fb4e
mov edi, dword [esp + 0x58]
cmp byte [edi], dl
jne 0x44fb6e
cmp eax, esi
jne 0x44ff34
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x78], 0x11
call eax
jmp 0x450028
cmp eax, esi
je 0x44ff58
movzx eax, byte [eax]
jmp 0x44ff67
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 0xe
call eax
mov ecx, eax
mov al, byte [esp + 0x40]
mov ebx, eax
and bl, 1
test bl, bl
lea edx, [esp + 0x41]
je 0x44fba4
mov edx, dword [esp + 0x48]
cmp byte [edx], cl
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
jne case.default.0x44f215
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0xc]
cmp edx, dword [ecx + 0x10]
je 0x44ffd6
inc edx
mov dword [ecx + 0xc], edx
jmp 0x44ffee
push esi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
test eax, eax
je 0x450442
mov edx, dword [esp + 0x2c]
and esi, 0xfffffffc
mov ecx, fcn.0047d120
add esi, eax
sub edx, dword [esp + 0x1c]
mov dword [esp + 0x6c], esi
add edx, eax
mov dword [edx], edi
add edx, 4
mov dword [esp + 0x2c], edx
cmp dword [esp + 0x70], 0
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], eax
jle 0x44f102
mov eax, dword [ebp + 8]
xor edx, edx
mov ecx, dword [eax]
test ecx, ecx
je 0x44fc50
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x44fc2a
mov edx, ecx
jmp 0x44fc50
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 0x1f
call eax
cmp eax, 0xffffffff
je 0x44fc45
mov eax, dword [ebp + 8]
mov edx, dword [eax]
jmp 0x44fc50
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax], 0
lea eax, [ebp + 0xc]
mov ecx, dword [eax]
test ecx, ecx
je 0x44fc93
mov eax, dword [ecx + 0xc]
mov dword [esp + 4], ecx
cmp eax, dword [ecx + 0x10]
jne 0x44fc81
mov eax, dword [ecx]
mov dword [esp + 0x10], edx
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 0x20
call eax
mov edx, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x44fc8a
test edx, edx
je 0x44fca3
jmp 0x4501de
lea eax, [ebp + 0xc]
mov dword [eax], 0
test edx, edx
mov dword [esp + 4], 0
je 0x4501de
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x44fcb5
movzx eax, byte [eax]
jmp 0x44fcc4
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 0x21
call eax
cmp byte [esp + 0x2b], al
jne 0x4501de
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x44fce1
inc eax
mov dword [ecx + 0xc], eax
jmp 0x44fcf0
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x78], 0x22
call eax
cmp dword [esp + 0x70], 0
jg 0x44fd0c
jmp 0x44f102
inc edx
mov dword [ecx + 0xc], edx
test eax, eax
jle 0x44f102
mov eax, dword [ebp + 8]
xor edx, edx
mov ecx, dword [eax]
test ecx, ecx
je 0x44fd21
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x44fd60
mov edx, ecx
mov ecx, dword [esp + 4]
test ecx, ecx
je 0x44fdb0
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
jne 0x44fd51
mov eax, dword [ecx]
mov dword [esp + 0x10], edx
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 0x24
call eax
mov edx, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x44fd98
test edx, edx
je 0x44fdc0
jmp 0x4501de
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 0x23
call eax
cmp eax, 0xffffffff
je 0x44fd83
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [eax]
test ecx, ecx
jne 0x44fd2d
jmp 0x44fdb0
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 4]
xor edx, edx
mov dword [eax], 0
test ecx, ecx
jne 0x44fd2d
jmp 0x44fdb0
lea eax, [ebp + 0xc]
mov dword [eax], 0
nop word cs:[eax + eax]
nop dword [eax + eax]
test edx, edx
mov dword [esp + 4], 0
je 0x4501de
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x44fde0
movzx eax, byte [eax]
jmp 0x44fdef
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 0x25
call eax
test al, al
js 0x4501de
mov ecx, dword [ebp + 0x24]
movzx eax, al
mov ecx, dword [ecx + 8]
test byte [ecx + eax*2], 4
je 0x4501de
mov eax, dword [ebp + 0x2c]
mov esi, dword [eax]
mov eax, dword [esp + 0xb8]
cmp esi, eax
jne 0x44fe89
mov edx, eax
mov eax, dword [ebp + 0x28]
mov ecx, 1
mov ebx, dword [eax]
sub edx, ebx
lea edi, [edx + edx]
test edx, edx
cmove edi, ecx
cmp edx, 0x7fffffff
mov edx, 0xffffffff
cmovae edi, edx
cmp dword [eax + 4], 0x423c60
je 0x44fe5a
push edi
push ebx
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
test eax, eax
jne 0x44fe6b
jmp 0x450465
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
test eax, eax
je 0x450465
mov ecx, dword [ebp + 0x28]
mov edx, dword [ebp + 0x2c]
sub esi, ebx
add esi, eax
mov dword [ecx], eax
mov dword [ecx + 4], fcn.0047d120
mov dword [edx], esi
add edi, dword [ecx]
mov dword [esp + 0xb8], edi
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x44fea0
movzx eax, byte [eax]
mov edx, dword [ebp + 0x2c]
jmp 0x44feb4
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 0x27
call eax
mov edx, dword [ebp + 0x2c]
mov esi, dword [edx]
lea ecx, [esi + 1]
mov dword [edx], ecx
mov byte [esi], al
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x70]
dec eax
mov dword [esp + 0x70], eax
mov ecx, dword [ecx]
mov edx, dword [ecx + 0xc]
cmp edx, dword [ecx + 0x10]
jne 0x44fd00
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x78], 0x28
call eax
mov eax, dword [esp + 0x70]
test eax, eax
jg 0x44fd0c
jmp 0x44f102
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 0xc
call eax
mov ecx, eax
mov al, byte [esp + 0x50]
mov bh, al
mov dword [esp + 4], eax
and bh, 1
test bh, bh
lea eax, [esp + 0x51]
je 0x44ff1f
mov eax, dword [esp + 0x58]
cmp byte [eax], cl
jne 0x44ff4d
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x450019
inc eax
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 4]
test bh, bh
je 0x450039
mov eax, dword [esp + 0x54]
jmp 0x45003e
mov eax, dword [ebp + 0x20]
mov byte [eax], 1
jmp 0x450050
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 0x12
call eax
mov dl, byte [esp + 0x40]
lea ecx, [esp + 0x41]
mov dh, dl
and dh, 1
je 0x44ff7a
mov ecx, dword [esp + 0x48]
cmp byte [ecx], al
jne 0x4502a1
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x44ff95
inc eax
mov dword [ecx + 0xc], eax
jmp 0x44ffad
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x78], 0x13
call eax
mov dl, byte [esp + 0x40]
mov dh, dl
and dh, 1
mov eax, dword [ebp + 0x20]
test dh, dh
mov byte [eax], 1
je 0x44ffbd
mov eax, dword [esp + 0x44]
jmp 0x44ffc2
shr dl, 1
movzx eax, dl
mov edx, dword [esp + 0x18]
cmp eax, 1
lea ecx, [esp + 0x40]
cmova edx, ecx
mov dword [esp + 0x18], edx
jmp 0x450050
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x78], 0xf
call eax
mov al, byte [esp + 0x40]
mov ebx, eax
and bl, 1
mov ecx, dword [ebp + 0x20]
test bl, bl
mov byte [ecx], 1
je 0x44fffe
mov eax, dword [esp + 0x44]
jmp 0x450003
shr al, 1
movzx eax, al
mov ecx, dword [esp + 0x18]
cmp eax, 1
lea eax, [esp + 0x40]
jmp 0x450049
mov edx, dword [esp + 0x30]
jmp 0x44f8f3
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x78], 0xd
call eax
mov al, byte [esp + 0x50]
mov bh, al
and bh, 1
test bh, bh
jne 0x44ff44
shr al, 1
movzx eax, al
mov ecx, dword [esp + 0x18]
cmp eax, 1
lea eax, [esp + 0x50]
cmova ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
jmp case.default.0x44f215
mov eax, dword [esp + 0x18]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x20], edx
test eax, eax
je 0x4501f9
inc eax
mov esi, 1
mov dword [esp + 0x14], eax
jmp 0x450084
inc eax
mov dword [ecx + 0xc], eax
mov edx, dword [esp + 0x18]
movzx eax, byte [edx]
test al, 1
jne 0x4500a0
shr eax, 1
cmp esi, eax
jb 0x4500ab
jmp 0x4501f9
mov eax, dword [edx + 4]
cmp esi, eax
jae 0x4501f9
mov eax, dword [ebp + 8]
xor edi, edi
mov ecx, dword [eax]
test ecx, ecx
je 0x450110
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x4500d0
mov edi, ecx
jmp 0x450110
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 0x29
mov dword [esp + 4], esi
call eax
mov esi, dword [esp + 4]
cmp eax, 0xffffffff
je 0x4500f7
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x18]
mov edi, dword [eax]
jmp 0x450110
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x18]
xor edi, edi
mov dword [eax], 0
nop word cs:[eax + eax]
lea eax, [ebp + 0xc]
mov ecx, dword [eax]
test ecx, ecx
je 0x450160
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
jne 0x450149
mov eax, dword [ecx]
mov dword [esp + 0x6c], edi
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 0x2a
mov dword [esp + 4], esi
call eax
mov esi, dword [esp + 4]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x6c]
cmp eax, 0xffffffff
je 0x450152
test edi, edi
je 0x450168
jmp 0x450351
lea eax, [ebp + 0xc]
mov dword [eax], 0
nop dword [eax + eax]
test edi, edi
je 0x450351
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x450180
movzx eax, byte [eax]
jmp 0x45019b
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], 0x2b
mov dword [esp + 4], esi
call eax
mov esi, dword [esp + 4]
mov edx, dword [esp + 0x18]
test byte [edx], 1
mov ecx, dword [esp + 0x14]
je 0x4501a7
mov ecx, dword [edx + 8]
cmp byte [ecx + esi], al
jne 0x450351
mov eax, dword [ebp + 8]
inc esi
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
jne 0x450080
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x78], 0x2c
mov dword [esp + 4], esi
call eax
mov esi, dword [esp + 4]
jmp 0x450084
mov eax, dword [ebp + 0x1c]
or byte [eax], 4
mov esi, dword [esp + 0x34]
mov dword [esp + 4], 0
mov eax, dword [esp + 0x38]
jmp 0x450367
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x2c]
mov al, 1
mov esi, dword [esp + 0x20]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
je 0x45036b
movzx edx, byte [esp + 0xa8]
mov ch, dl
and ch, 1
je 0x450231
mov eax, dword [esp + 0xac]
jmp 0x450235
mov eax, edx
shr eax, 1
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x3c]
test eax, eax
mov dword [esp + 0x14], edi
je 0x45036b
mov eax, dword [esp + 0x2c]
add eax, 0xfffffffc
cmp eax, dword [esp + 0x20]
mov edi, eax
jbe 0x450290
mov eax, dword [esp + 0x20]
mov ecx, edi
add eax, 4
nop word cs:[eax + eax]
nop dword [eax + eax]
mov edx, dword [eax - 4]
mov esi, dword [ecx]
mov dword [eax - 4], esi
mov dword [ecx], edx
add ecx, 0xfffffffc
cmp eax, ecx
lea eax, [eax + 4]
jb 0x450270
mov dl, byte [esp + 0xa8]
mov ch, dl
and ch, 1
mov esi, dword [esp + 0x20]
test ch, ch
je 0x4502c0
mov eax, dword [esp + 0xb0]
jmp 0x4502c7
mov eax, dword [ebp + 0x1c]
or byte [eax], 4
mov eax, dword [esp + 8]
mov dword [esp + 4], 0
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0xc]
jmp 0x45036b
lea eax, [esp + 0xa9]
mov cl, byte [eax]
mov ebx, ecx
dec bl
cmp bl, 0x7e
setb bl
cmp edi, esi
jbe 0x45032f
mov esi, dword [esp + 0x20]
test ch, ch
je 0x4502e8
mov edx, dword [esp + 0xac]
jmp 0x4502ed
shr dl, 1
movzx edx, dl
add edx, eax
jmp 0x450321
mov ecx, edx
sub ecx, eax
cmp ecx, 1
lea ecx, [eax + 1]
cmovg eax, ecx
add esi, 4
movzx ecx, byte [eax]
mov ch, cl
dec ch
cmp ch, 0x7e
setb bl
cmp esi, edi
jae 0x45032f
test bl, 1
je 0x450300
movzx ecx, cl
cmp dword [esi], ecx
je 0x450300
jmp 0x450351
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x3c]
test bl, bl
je 0x450367
movzx eax, cl
mov ecx, dword [edi]
mov esi, dword [esp + 0x20]
dec ecx
cmp ecx, eax
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x14], ecx
jb 0x45036b
mov eax, dword [ebp + 0x1c]
or byte [eax], 4
mov esi, dword [esp + 0x20]
mov dword [esp + 4], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
test byte [esp + 0xc0], 1
jne 0x45039a
test byte [esp + 0x40], 1
jne 0x4503b0
test byte [esp + 0x50], 1
jne 0x4503c3
test byte [esp + 0x60], 1
jne 0x4503d6
test byte [esp + 0xa8], 1
jne 0x4503ec
test esi, esi
jne 0x4503ff
jmp 0x45040f
push dword [esp + 0xc8]
call fcn.00417920
add esp, 4
test byte [esp + 0x40], 1
je 0x45037c
push dword [esp + 0x48]
call fcn.00417920
add esp, 4
test byte [esp + 0x50], 1
je 0x450383
push dword [esp + 0x58]
call fcn.00417920
add esp, 4
test byte [esp + 0x60], 1
je 0x45038a
push dword [esp + 0x68]
call fcn.00417920
add esp, 4
test byte [esp + 0xa8], 1
je 0x450394
push dword [esp + 0xb0]
call fcn.00417920
add esp, 4
test esi, esi
je 0x45040f
mov dword [esp + 0x78], 0x2d
push esi
call dword [esp + 0x18]
add esp, 4
lea eax, [esp + 0x74]
push eax
call fcn.0047cce0
add esp, 4
mov eax, dword [esp + 4]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x78], 0x1c
call fcn.00417750
mov dword [esp + 0x78], 0x1b
call fcn.00417750
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], ecx
mov dword [esp + 0x78], 0x1e
call fcn.00417750
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], ecx
mov dword [esp + 0x78], 0x26
call fcn.00417750
jmp dword [eax*4 + 0x450674]