Function at 0x444666
Capabilities:
Print debug messages

Disassembly:
push 0xcc
mov eax, 0x48490c
call fcn.00401298
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0xa0]
mov ecx, dword [ebp + 0x14]
push 1
push eax
xor ebx, ebx
push ebx
push edi
push 0x11
mov byte [ecx], bl
lea edx, [ebp - 0x4c]
lea esi, [ebp - 0x34]
pop ecx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x4c], ebx
call fcn.0040a3be
mov esi, eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], ebx
cmp esi, ebx
je 0x4446c6
or dword [ebp - 4], 0xffffffff
cmp eax, ebx
je 0x4446bf
push eax
call dword [edi + 8]
mov eax, esi
jmp 0x4448c4
mov eax, dword [ebp + 0x10]
xor edi, edi
add eax, 0x28
mov ecx, edi
adc ecx, ebx
cmp ecx, ebx
ja 0x44557c
jb 0x4446e5
cmp eax, 0xffffffff
ja 0x44557c
mov edx, eax
cmp ecx, ebx
ja 0x44557c
jb 0x4446fa
cmp edx, 0xffffffff
ja 0x44557c
mov esi, dword [ebp - 0x34]
movzx eax, byte [eax + esi]
movzx ecx, byte [edx + esi + 1]
shl ax, 8
or ax, cx
mov ecx, dword [ebp + 0x10]
add ecx, 0x2a
mov edx, edi
adc edx, ebx
mov dword [ebp - 0x30], ecx
cmp edx, ebx
ja 0x44557c
jb 0x444740
cmp ecx, 0xffffffff
ja 0x44557c
cmp edx, ebx
ja 0x44557c
jb 0x444740
cmp ecx, 0xffffffff
ja 0x44557c
mov edx, dword [ebp - 0x30]
movzx edx, byte [edx + esi]
movzx ecx, byte [ecx + esi + 1]
shl dx, 8
or dx, cx
cmp ax, word [ebp + 0xc]
ja 0x4448b0
cmp word [ebp + 0xc], dx
ja 0x4448b0
mov eax, dword [ebp + 0x10]
add eax, 8
push 0
pop ecx
adc ecx, ebx
mov dword [ebp - 0x30], eax
cmp ecx, ebx
ja 0x44557c
jb 0x444788
cmp eax, 0xffffffff
ja 0x44557c
mov dword [ebp - 0x28], eax
cmp ecx, ebx
ja 0x44557c
jb 0x44479e
cmp eax, 0xffffffff
ja 0x44557c
mov edx, eax
cmp ecx, ebx
ja 0x44557c
jb 0x4447b3
cmp edx, 0xffffffff
ja 0x44557c
mov edi, eax
cmp ecx, ebx
ja 0x44557c
jb 0x4447c8
cmp edi, 0xffffffff
ja 0x44557c
movzx edx, byte [edx + esi]
movzx eax, byte [edi + esi + 1]
mov edi, dword [ebp + 0x10]
shl edx, 8
or edx, eax
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax + esi + 2]
shl edx, 8
or edx, eax
mov eax, dword [ebp - 0x28]
movzx eax, byte [eax + esi + 3]
shl edx, 8
or edx, eax
xor eax, eax
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], edi
cmp eax, ebx
ja 0x44557c
jb 0x444821
cmp edi, 0xffffffff
ja 0x44557c
cmp eax, ebx
ja 0x44557c
jb 0x444821
cmp edi, 0xffffffff
ja 0x44557c
mov ecx, edi
cmp eax, ebx
ja 0x44557c
jb 0x444836
cmp ecx, 0xffffffff
ja 0x44557c
xor ebx, ebx
mov eax, ecx
test ebx, ebx
ja 0x44557c
jb 0x44484d
cmp eax, 0xffffffff
ja 0x44557c
movzx ecx, byte [ecx + esi]
movzx eax, byte [eax + esi + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax + esi + 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [edi + esi + 3]
shl ecx, 8
or ecx, eax
mov eax, edx
xor edi, edi
shld edi, eax, 3
shl eax, 3
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x3c], ecx
test edi, edi
ja 0x44557c
jb 0x444896
cmp eax, 0xffffffff
ja 0x44557c
add eax, ecx
cmp eax, ecx
jb 0x44557c
cmp eax, dword [ebp - 0x18]
jbe 0x4448cc
push 0x4455e0
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x10], ebx
je 0x4448c2
push dword [ebp - 0x10]
mov eax, dword [ebp + 8]
call dword [eax + 8]
xor eax, eax
call fcn.00401410
ret 0x28
test edx, edx
je 0x4455c1
mov eax, dword [ebp + 0x14]
cmp byte [eax], 0
jne 0x4455c1
mov eax, dword [ebp - 0x3c]
xor edx, edx
mov dword [ebp - 0xac], edx
ja 0x44557c
jb 0x4448fc
cmp eax, 0xffffffff
ja 0x44557c
mov ecx, dword [ebp - 0x3c]
test edx, edx
ja 0x44557c
jb 0x444912
cmp ecx, 0xffffffff
ja 0x44557c
movzx eax, byte [eax + esi]
movzx ecx, byte [ecx + esi + 1]
shl ax, 8
or ax, cx
mov ecx, dword [ebp - 0x3c]
add ecx, 2
adc edx, edx
mov word [ebp - 0x48], ax
mov edi, ecx
test edx, edx
ja 0x44557c
jb 0x444956
cmp edi, 0xffffffff
ja 0x44557c
test edx, edx
ja 0x44557c
jb 0x444956
cmp ecx, 0xffffffff
ja 0x44557c
movzx edx, byte [edi + esi]
movzx ecx, byte [ecx + esi + 1]
shl dx, 8
or dx, cx
cmp ax, word [ebp + 0xc]
ja 0x445543
cmp word [ebp + 0xc], dx
ja 0x445543
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0xac]
add eax, 4
adc ecx, 0
mov ebx, eax
test ecx, ecx
ja 0x44557c
jb 0x44499e
cmp ebx, 0xffffffff
ja 0x44557c
mov edi, eax
test ecx, ecx
ja 0x44557c
jb 0x4449c6
cmp edi, 0xffffffff
ja 0x44557c
test ecx, ecx
ja 0x44557c
jb 0x4449c6
cmp eax, 0xffffffff
ja 0x44557c
mov edx, eax
test ecx, ecx
ja 0x44557c
jb 0x4449db
cmp edx, 0xffffffff
ja 0x44557c
movzx eax, byte [eax + esi]
movzx ecx, byte [edx + esi + 1]
movzx edi, byte [edi + esi + 3]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebx + esi + 2]
shl eax, 8
or eax, ecx
mov ecx, dword [ebp - 0x54]
shl eax, 8
or edi, eax
add edi, ecx
cmp edi, ecx
jb 0x44557c
xor ebx, ebx
mov eax, edi
add eax, 8
mov ecx, ebx
adc ecx, ecx
mov dword [ebp - 0xd4], ebx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ecx
test ecx, ecx
ja 0x44557c
jb 0x444a34
cmp eax, 0xffffffff
ja 0x44557c
cmp eax, dword [ebp - 0x18]
ja 0x4448a5
cmp edi, dword [ebp - 0x18]
ja 0x4448a5
cmp dword [ebp - 0x18], 8
jb 0x4448a5
test ebx, ebx
ja 0x44557c
jb 0x444a63
cmp edi, 0xffffffff
ja 0x44557c
mov eax, edi
test ebx, ebx
ja 0x44557c
jb 0x444a78
cmp eax, 0xffffffff
ja 0x44557c
movzx ecx, byte [edi + esi]
movzx eax, byte [eax + esi + 1]
shl cx, 8
or cx, ax
movzx eax, cx
mov dword [ebp - 0x1c], eax
mov eax, edi
add eax, 2
mov ecx, ebx
adc ecx, ecx
mov dword [ebp - 0x60], eax
test ecx, ecx
ja 0x44557c
jb 0x444ac0
cmp eax, 0xffffffff
ja 0x44557c
test ecx, ecx
ja 0x44557c
jb 0x444ac0
cmp eax, 0xffffffff
ja 0x44557c
mov ecx, dword [ebp - 0x60]
movzx ecx, byte [ecx + esi]
movzx eax, byte [eax + esi + 1]
shl cx, 8
or cx, ax
movzx eax, cx
mov dword [ebp - 0x50], eax
mov eax, edi
add eax, 4
mov ecx, ebx
adc ecx, ecx
mov dword [ebp - 0xa0], eax
test ecx, ecx
ja 0x44557c
jb 0x444afb
cmp eax, 0xffffffff
ja 0x44557c
mov dword [ebp - 0x90], eax
test ecx, ecx
ja 0x44557c
jb 0x444b14
cmp eax, 0xffffffff
ja 0x44557c
mov dword [ebp - 0x80], eax
test ecx, ecx
ja 0x44557c
jb 0x444b3d
cmp eax, 0xffffffff
ja 0x44557c
test ecx, ecx
ja 0x44557c
jb 0x444b3d
cmp eax, 0xffffffff
ja 0x44557c
movzx eax, byte [eax + esi + 1]
mov ecx, dword [ebp - 0x80]
movzx ecx, byte [ecx + esi]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0xa0]
movzx eax, byte [eax + esi + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0x90]
movzx eax, byte [eax + esi + 3]
shl ecx, 8
or ecx, eax
movzx eax, word [ebp - 0x1c]
dec eax
mov dword [ebp - 0x44], ecx
je 0x4453bf
dec eax
je 0x4452a2
dec eax
je 0x445220
dec eax
je 0x444e57
dec eax
jne 0x4448b0
mov eax, edi
add eax, 0x18
mov ecx, ebx
adc ecx, ecx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], ecx
test ecx, ecx
ja 0x44557c
jb 0x444bba
cmp eax, 0xffffffff
ja 0x44557c
cmp eax, dword [ebp - 0x18]
ja 0x44556b
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov ecx, edx
mov dword [ebp - 0x70], eax
test ecx, ecx
ja 0x44557c
jb 0x444be1
cmp eax, 0xffffffff
ja 0x44557c
mov dword [ebp - 0x78], eax
test ecx, ecx
ja 0x44557c
jb 0x444bf7
cmp eax, 0xffffffff
ja 0x44557c
mov ecx, eax
test edx, edx
ja 0x44557c
jb 0x444c0c
cmp ecx, 0xffffffff
ja 0x44557c
mov edx, dword [ebp - 0x24]
test edx, edx
ja 0x44557c
jb 0x444c22
cmp eax, 0xffffffff
ja 0x44557c
movzx ecx, byte [ecx + esi]
movzx eax, byte [eax + esi + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0x70]
movzx eax, byte [eax + esi + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0x78]
movzx eax, byte [eax + esi + 3]
shl ecx, 8
or ecx, eax
mov eax, edi
add eax, 0xc
mov edx, ebx
adc edx, edx
test edx, edx
ja 0x44557c
jb 0x444c66
cmp eax, 0xffffffff
ja 0x44557c
mov edx, dword [ebp + 0x20]
mov dword [edx], eax
mov edx, dword [ebp + 0x1c]
xor eax, eax
inc eax
add edi, 0x14
mov word [edx], ax
mov edx, dword [ebp + 0x18]
push 3
adc ebx, ebx
pop eax
mov word [edx], ax
mov dword [ebp - 0x68], edi
test ebx, ebx
ja 0x44557c
jb 0x444c98
cmp edi, 0xffffffff
ja 0x44557c
mov dword [ebp - 0x88], edi
test ebx, ebx
ja 0x44557c
jb 0x444cb1
cmp edi, 0xffffffff
ja 0x44557c
mov eax, ebx
mov edx, edi
test eax, eax
ja 0x44557c
jb 0x444cc8
cmp edx, 0xffffffff
ja 0x44557c
mov eax, edi
test ebx, ebx
ja 0x44557c
jb 0x444cdd
cmp eax, 0xffffffff
ja 0x44557c
movzx edx, byte [edx + esi]
movzx eax, byte [eax + esi + 1]
shl edx, 8
or edx, eax
mov eax, dword [ebp - 0x68]
movzx eax, byte [eax + esi + 2]
shl edx, 8
or edx, eax
mov eax, dword [ebp - 0x88]
movzx eax, byte [eax + esi + 3]
shl edx, 8
or edx, eax
xor ebx, ebx
xor eax, eax
mov edi, edx
sub edi, 1
sbb eax, ebx
mov dword [ebp - 0x38], ebx
cmp eax, ebx
jg 0x44557c
jl 0x44557c
cmp edi, 0xffffffff
ja 0x44557c
cmp eax, ebx
jl 0x44557c
jg 0x444d3f
cmp edi, ebx
jb 0x44557c
mov dword [ebp - 0x40], edi
cmp dword [ebp - 0x2c], ebx
ja 0x44557c
jb 0x444d57
cmp dword [ebp - 0x30], 0xffffffff
ja 0x44557c
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x30], eax
ja 0x44557c
mov ebx, dword [ebp - 0x30]
sub eax, ebx
je 0x444d6f
shr eax, 1
cmp edx, eax
ja 0x445575
movzx eax, byte [ebx + esi]
movzx edx, byte [ebx + esi + 1]
shl ax, 8
or ax, dx
cmp ax, word [ebp + 0xc]
je 0x444e28
xor edx, edx
shld edx, edi, 1
mov eax, edi
add edi, edi
test edx, edx
ja 0x44557c
jb 0x444dae
cmp edi, 0xffffffff
ja 0x44557c
lea edx, [edi + ebx]
jmp 0x444e05
jae 0x444dba
mov dword [ebp - 0x38], eax
jmp 0x444dbd
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
cmp dword [ebp - 0x38], eax
ja 0x44557c
mov edx, dword [ebp - 0x38]
mov edi, eax
sub eax, edx
cmp eax, 2
jb 0x445596
lea eax, [edi + edx]
cmp eax, edx
jb 0x44557c
shr eax, 1
mov edx, eax
xor edi, edi
shld edi, edx, 1
add edx, edx
test edi, edi
ja 0x44557c
jb 0x444e03
cmp edx, 0xffffffff
ja 0x44557c
add edx, ebx
cmp edx, ebx
jb 0x44557c
movzx edi, byte [edx + esi]
movzx edx, byte [esi + edx + 1]
shl di, 8
or di, dx
movzx edx, di
cmp dx, word [ebp + 0xc]
je 0x444e2b
jmp 0x444db3
mov eax, dword [ebp - 0x1c]
mul ecx
test edx, edx
ja 0x44557c
jb 0x444e40
cmp eax, 0xffffffff
ja 0x44557c
mov edx, dword [ebp - 0x44]
add eax, edx
cmp eax, edx
jb 0x44557c
mov edx, dword [ebp + 0x28]
mov dword [edx], eax
jmp 0x44548b
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
test ecx, ecx
ja 0x44557c
jb 0x444e70
cmp eax, 0xffffffff
ja 0x44557c
lea ecx, [eax + 4]
cmp ecx, eax
jb 0x44557c
cmp ecx, dword [ebp - 0x18]
ja 0x445581
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x98], eax
test ecx, ecx
ja 0x44557c
jb 0x444ea0
cmp eax, 0xffffffff
ja 0x44557c
mov dword [ebp - 0xa8], eax
test ecx, ecx
ja 0x44557c
jb 0x444ecc
cmp eax, 0xffffffff
ja 0x44557c
test ecx, ecx
ja 0x44557c
jb 0x444ecc
cmp eax, 0xffffffff
ja 0x44557c
mov edx, dword [ebp - 0x24]
mov ecx, eax
test edx, edx
ja 0x44557c
jb 0x444ee4
cmp ecx, 0xffffffff
ja 0x44557c
movzx eax, byte [eax + esi]
movzx ecx, byte [ecx + esi + 1]
and dword [ebp - 0x38], ebx
shl eax, 8
or eax, ecx
mov ecx, dword [ebp - 0x98]
movzx ecx, byte [ecx + esi + 2]
shl eax, 8
or eax, ecx
mov ecx, dword [ebp - 0xa8]
movzx ecx, byte [ecx + esi + 3]
shl eax, 8
or eax, ecx
xor edx, edx
mov ecx, eax
sub ecx, 1
sbb edx, edx
test edx, edx
jg 0x44557c
jl 0x44557c
cmp ecx, 0xffffffff
ja 0x44557c
test edx, edx
jl 0x44557c
jg 0x444f47
test ecx, ecx
jb 0x44557c
add edi, 0xc
adc ebx, ebx
mov edx, edi
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0xb8], edx
test ebx, ebx
ja 0x44557c
jb 0x444f6a
cmp edx, 0xffffffff
ja 0x44557c
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x1c], edx
cmp edx, edi
ja 0x44557c
sub edi, edx
je 0x444f7f
shr edi, 2
xor ebx, ebx
sub edi, 1
sbb ebx, ebx
test ebx, ebx
jg 0x44557c
jl 0x44557c
cmp edi, 0xffffffff
ja 0x44557c
test ebx, ebx
jl 0x44557c
jg 0x444faf
test edi, edi
jb 0x44557c
cmp eax, edi
ja 0x44558b
xor edi, edi
mov ebx, edx
ja 0x44557c
jb 0x444fcc
cmp ebx, 0xffffffff
ja 0x44557c
mov eax, edx
test edi, edi
ja 0x44557c
jb 0x444fe1
cmp eax, 0xffffffff
ja 0x44557c
movzx edx, byte [ebx + esi]
movzx eax, byte [eax + esi + 1]
shl dx, 8
or dx, ax
cmp dx, word [ebp + 0xc]
je 0x44514c
xor eax, eax
shld eax, ecx, 2
mov edx, ecx
shl ecx, 2
test eax, eax
jg 0x44557c
jl 0x44557c
cmp ecx, 0xffffffff
ja 0x44557c
test eax, eax
jl 0x44557c
jg 0x44502f
test ecx, ecx
jb 0x44557c
mov edi, dword [ebp - 0xb8]
lea eax, [ecx + edi]
cmp eax, edi
jb 0x44557c
xor edi, edi
mov dword [ebp - 0x1c], eax
mov ecx, eax
test edi, edi
ja 0x44557c
jb 0x44506d
cmp ecx, 0xffffffff
ja 0x44557c
test edi, edi
ja 0x44557c
jb 0x44506d
cmp eax, 0xffffffff
ja 0x44557c
movzx ecx, byte [ecx + esi]
movzx eax, byte [eax + esi + 1]
shl cx, 8
or cx, ax
movzx eax, cx
cmp ax, word [ebp + 0xc]
je 0x44514c
mov ebx, dword [ebp - 0x38]
jae 0x445096
mov ebx, edx
mov dword [ebp - 0x38], ebx
jmp 0x445099
mov dword [ebp - 0x40], edx
mov ecx, dword [ebp - 0x40]
cmp ebx, ecx
ja 0x44557c
mov eax, ecx
sub eax, ebx
cmp eax, 2
jb 0x445596
lea eax, [ecx + ebx]
cmp eax, ebx
jb 0x44557c
shr eax, 1
xor ecx, ecx
shld ecx, eax, 2
mov edx, eax
shl eax, 2
test ecx, ecx
jg 0x44557c
jl 0x44557c
cmp eax, 0xffffffff
ja 0x44557c
test ecx, ecx
jl 0x44557c
jg 0x4450f2
test eax, eax
jb 0x44557c
mov ecx, dword [ebp - 0xb8]
add eax, ecx
cmp eax, ecx
jb 0x44557c
xor edi, edi
mov dword [ebp - 0x1c], eax
mov ecx, eax
test edi, edi
ja 0x44557c
jb 0x44512f
cmp ecx, 0xffffffff
ja 0x44557c
test edi, edi
ja 0x44557c
jb 0x44512f
cmp eax, 0xffffffff
ja 0x44557c
movzx ecx, byte [ecx + esi]
movzx eax, byte [eax + esi + 1]
shl cx, 8
or cx, ax
movzx eax, cx
cmp ax, word [ebp + 0xc]
jne 0x44508d
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
add eax, 2
mov edi, ecx
adc edi, ecx
test edi, edi
ja 0x44557c
jb 0x44516b
cmp eax, 0xffffffff
ja 0x44557c
mov ebx, eax
test edi, edi
ja 0x44557c
jb 0x445180
cmp ebx, 0xffffffff
ja 0x44557c
movzx eax, byte [eax + esi]
movzx edx, byte [ebx + esi + 1]
shl ax, 8
movzx eax, ax
or eax, edx
mov edx, dword [ebp - 0x1c]
add edx, 4
adc ecx, ecx
mov edi, edx
test ecx, ecx
ja 0x44557c
jb 0x4451af
cmp edi, 0xffffffff
ja 0x44557c
xor ebx, ebx
add edi, 2
adc ebx, ebx
test ebx, ebx
ja 0x44557c
jb 0x4451c9
cmp edi, 0xffffffff
ja 0x44557c
mov ebx, edx
test ecx, ecx
ja 0x44557c
jb 0x4451de
cmp ebx, 0xffffffff
ja 0x44557c
xor ecx, ecx
add ebx, 2
adc ecx, ecx
test ecx, ecx
ja 0x44557c
jb 0x4451f8
cmp ebx, 0xffffffff
ja 0x44557c
movzx ecx, byte [edi + esi]
movzx edx, byte [ebx + esi + 1]
shl cx, 8
movzx ecx, cx
or ecx, edx
cmp eax, ecx
ja 0x44557c
mov edx, dword [ebp - 0x44]
sub ecx, eax
add eax, edx
cmp eax, edx
jmp 0x445477
mov eax, dword [ebp + 0xc]
sub eax, dword [ebp - 0x48]
xor ecx, ecx
movzx eax, ax
shld ecx, eax, 1
add eax, eax
test ecx, ecx
ja 0x44557c
jb 0x445244
cmp eax, 0xffffffff
ja 0x44557c
push eax
lea eax, [ebp - 0xbc]
call fcn.004462d7
mov eax, dword [eax]
add eax, edi
cmp eax, edi
jb 0x44557c
lea ecx, [eax + 4]
cmp ecx, eax
jb 0x44557c
cmp ecx, dword [ebp - 0x18]
ja 0x4455a3
movzx ecx, byte [eax + esi]
shl cx, 8
movzx edx, cx
movzx ecx, byte [eax + esi + 1]
lea edi, [eax + 2]
or edx, ecx
cmp edi, eax
jb 0x44557c
movzx eax, byte [edi + esi]
shl ax, 8
movzx ecx, ax
movzx eax, byte [edi + esi + 1]
jmp 0x44545d
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov ecx, edx
test ecx, ecx
ja 0x44557c
jb 0x4452bd
cmp eax, 0xffffffff
ja 0x44557c
lea ecx, [eax + 4]
cmp ecx, eax
jb 0x44557c
cmp ecx, dword [ebp - 0x18]
ja 0x4455ad
mov ecx, edx
mov dword [ebp - 0xc8], eax
test ecx, ecx
ja 0x44557c
jb 0x4452ec
cmp eax, 0xffffffff
ja 0x44557c
mov ebx, eax
test ecx, ecx
ja 0x44557c
jb 0x445301
cmp ebx, 0xffffffff
ja 0x44557c
mov ecx, eax
test edx, edx
ja 0x44557c
jb 0x445316
cmp ecx, 0xffffffff
ja 0x44557c
mov edx, dword [ebp - 0x24]
test edx, edx
ja 0x44557c
jb 0x44532c
cmp eax, 0xffffffff
ja 0x44557c
movzx ecx, byte [ecx + esi]
movzx eax, byte [eax + esi + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0xc8]
movzx eax, byte [eax + esi + 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + esi + 3]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp + 0xc]
sub eax, dword [ebp - 0x48]
movzx eax, ax
mul ecx
test edx, edx
ja 0x44557c
jb 0x445372
cmp eax, 0xffffffff
ja 0x44557c
mov edx, dword [ebp - 0x44]
add eax, edx
cmp eax, edx
jb 0x44557c
mov edx, dword [ebp + 0x28]
mov dword [edx], eax
mov edx, dword [ebp - 0xd4]
add edi, 0xc
adc edx, 0
test edx, edx
ja 0x44557c
jb 0x4453a3
cmp edi, 0xffffffff
ja 0x44557c
mov edx, dword [ebp + 0x20]
mov dword [edx], edi
mov edi, dword [ebp + 0x1c]
xor edx, edx
inc edx
mov word [edi], dx
mov edi, dword [ebp + 0x18]
push 3
pop edx
mov word [edi], dx
jmp 0x44548e
mov eax, dword [ebp + 0xc]
sub eax, dword [ebp - 0x48]
xor ecx, ecx
movzx eax, ax
shld ecx, eax, 2
shl eax, 2
test ecx, ecx
ja 0x44557c
jb 0x4453e4
cmp eax, 0xffffffff
ja 0x44557c
push eax
lea eax, [ebp - 0xcc]
call fcn.004462d7
mov eax, dword [eax]
add eax, edi
cmp eax, edi
jb 0x44557c
lea ecx, [eax + 8]
cmp ecx, eax
jb 0x44557c
cmp ecx, dword [ebp - 0x18]
ja 0x4455b7
movzx edx, byte [eax + esi]
movzx ecx, byte [eax + esi + 1]
shl edx, 8
or edx, ecx
movzx ecx, byte [eax + esi + 2]
shl edx, 8
or edx, ecx
movzx ecx, byte [eax + esi + 3]
shl edx, 8
lea edi, [eax + 4]
or edx, ecx
cmp edi, eax
jb 0x44557c
movzx ecx, byte [edi + esi]
movzx eax, byte [edi + esi + 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [edi + esi + 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [edi + esi + 3]
shl ecx, 8
or ecx, eax
cmp edx, ecx
ja 0x44557c
sub ecx, edx
je 0x4448b0
mov edi, dword [ebp - 0x44]
lea eax, [edi + edx]
cmp eax, edi
jb 0x44557c
mov edx, dword [ebp + 0x20]
mov edi, dword [ebp + 0x1c]
mov dword [edx], eax
push 2
pop edx
mov word [edi], dx
mov edi, dword [ebp + 0x18]
mov edx, dword [ebp + 0x2c]
mov ebx, dword [ebp - 0x50]
mov dword [edx], ecx
mov ecx, dword [ebp + 0x24]
mov word [ecx], bx
mov ecx, dword [ebp + 0x10]
push 0
add ecx, 0x2f
pop edx
adc edx, edx
test edx, edx
ja 0x44557c
jb 0x4454ba
cmp ecx, 0xffffffff
ja 0x44557c
movzx edx, byte [ecx + esi]
movzx ecx, bx
test ecx, ecx
jle 0x445543
cmp ecx, 2
jle 0x445516
cmp ecx, 5
je 0x44553d
jle 0x445543
cmp ecx, 7
jle 0x4454e0
cmp ecx, 8
je 0x4454ed
cmp ecx, 9
jne 0x445543
push 3
pop ecx
mov word [edi], cx
xor ecx, ecx
add eax, 8
jmp 0x44552b
cmp edx, 1
jne 0x4454f7
xor ecx, ecx
inc ecx
jmp 0x4454fa
push 2
pop ecx
mov word [edi], cx
xor ecx, ecx
add eax, 5
adc ecx, ecx
test ecx, ecx
ja 0x44557c
jb 0x44550f
cmp eax, 0xffffffff
ja 0x44557c
xor ecx, ecx
add eax, 1
jmp 0x44552b
cmp edx, 1
jne 0x445520
xor ecx, ecx
inc ecx
jmp 0x445523
push 2
pop ecx
mov word [edi], cx
xor ecx, ecx
add eax, 5
adc ecx, ecx
test ecx, ecx
ja 0x44557c
jb 0x445538
cmp eax, 0xffffffff
ja 0x44557c
mov ecx, dword [ebp + 0x28]
mov dword [ecx], eax
mov eax, dword [ebp + 0x14]
mov byte [eax], 1
dec dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0xac]
add eax, 8
adc ecx, 0
test ecx, ecx
ja 0x44557c
jb 0x445560
cmp eax, 0xffffffff
ja 0x44557c
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x3c], eax
jmp 0x4448cc
push 0x445788
jmp 0x4448aa
push 0x4457d0
jmp 0x445590
call fcn.004439d8
push 0x4456f0
jmp 0x4448aa
push 0x445738
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x10], 0
jmp 0x4448b7
push 0x4456a8
jmp 0x4448aa
push 0x445660
jmp 0x4448aa
push 0x445618
jmp 0x4448aa
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x10], 0
je 0x4448c2
push dword [ebp - 0x10]
mov eax, dword [ebp + 8]
call dword [eax + 8]
jmp 0x4448c2