Function at 0x447748
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffc90
push ebx
push esi
push edi
mov eax, dword [ebp + 0x14]
mov esi, dword [eax + 0x120]
test esi, esi
jne 0x447768
xor eax, eax
jmp 0x44ae54
mov edx, dword [esi + 0x255]
and edx, 0xf000
mov dword [ebp - 0x18], edx
mov ecx, dword [esi + 0x255]
and ecx, 0xff0
sar ecx, 4
mov dword [ebp - 0x1c], ecx
mov eax, dword [esi + 0x255]
and eax, 0xf
mov dword [ebp - 0x20], eax
mov edx, dword [ebp + 0x10]
xor ecx, ecx
mov dword [edx], ecx
cmp dword [esi + 0x108], 0
jle 0x448162
cmp dword [ebp - 0x18], 0x9000
je 0x4477bb
cmp dword [ebp - 0x18], 0xd000
jne 0x4477c2
mov dword [ebp - 0x20], 0x10
cmp dword [ebp - 0x18], 0xd000
jne 0x4477e7
mov eax, dword [esi + 0x375]
mov dword [0x4e9ea0], eax
mov edx, dword [esi + 0x379]
mov dword [0x4e9ea4], edx
jmp 0x44786f
mov ecx, dword [esi + 0x37d]
mov dword [0x4e9ea0], ecx
mov eax, dword [ebp - 0x20]
imul dword [ebp - 0x1c]
imul dword [esi + 0x108]
mov dword [0x4e9ea4], eax
mov edx, dword [esi + 0x379]
cmp edx, dword [0x4e9ea4]
jae 0x44781e
mov ecx, dword [esi + 0x379]
mov dword [0x4e9ea4], ecx
mov eax, dword [esi + 0x375]
add eax, dword [esi + 0x379]
cmp eax, dword [0x4e9ea0]
jae 0x44783c
xor edx, edx
mov dword [0x4e9ea4], edx
jmp 0x44786f
mov ecx, dword [esi + 0x375]
mov eax, dword [0x4e9ea0]
add eax, dword [0x4e9ea4]
add ecx, dword [esi + 0x379]
cmp ecx, eax
jae 0x44786f
mov edx, dword [esi + 0x375]
add edx, dword [esi + 0x379]
sub edx, dword [0x4e9ea0]
mov dword [0x4e9ea4], edx
xor ecx, ecx
xor eax, eax
xor edx, edx
mov dword [0x4ea81c], ecx
cmp dword [ebp - 0x18], 0x9000
mov dword [0x4ea820], eax
mov dword [0x4eab50], edx
jne 0x4478c0
test byte [esi + 0x257], 1
jne 0x4478c0
movsx ecx, word [esi + 0x23f]
mov dword [0x4eab70], ecx
cmp dword [0x4eab70], 0
jl 0x4478b7
cmp dword [0x4eab70], 5
jl 0x4478c8
xor eax, eax
mov dword [0x4eab70], eax
jmp 0x4478c8
xor edx, edx
mov dword [0x4eab70], edx
cmp dword [0x4b9f88], 0
je 0x4478eb
mov ecx, dword [0x4e9ea4]
cmp ecx, dword [0x4b9f8c]
ja 0x4478eb
cmp dword [0x4b9f8c], 0x10000
jbe 0x447936
cmp dword [0x4b9f88], 0
je 0x44790f
mov eax, dword [0x4b9f88]
push eax
call sub.KERNEL32.DLL_GlobalFree
xor edx, edx
xor ecx, ecx
mov dword [0x4b9f88], edx
mov dword [0x4b9f8c], ecx
mov eax, dword [0x4e9ea4]
push eax
push 0
call sub.KERNEL32.DLL_GlobalAlloc
mov dword [0x4b9f88], eax
cmp dword [0x4b9f88], 0
je 0x447936
mov edx, dword [0x4e9ea4]
mov dword [0x4b9f8c], edx
cmp dword [0x4b9f90], 0
je 0x44797d
mov ecx, dword [0x4b9f94]
cmp ecx, dword [0x4e9ea4]
jb 0x447962
cmp dword [0x4b9f94], 0x10000
ja 0x447962
call sym.ollydbg.exe__Runtracesize
test eax, eax
jne 0x44797d
mov eax, dword [0x4b9f90]
push eax
call sub.KERNEL32.DLL_GlobalFree
xor edx, edx
xor ecx, ecx
mov dword [0x4b9f90], edx
mov dword [0x4b9f94], ecx
cmp dword [0x4b9f90], 0
jne 0x4479ca
cmp dword [ebp - 0x18], 0x9000
jne 0x4479ca
cmp dword [esi + 0x26d], 2
jne 0x4479ca
call sym.ollydbg.exe__Runtracesize
dec eax
jle 0x4479ca
mov eax, dword [0x4e9ea4]
shl eax, 2
push eax
push 0
call sub.KERNEL32.DLL_GlobalAlloc
mov dword [0x4b9f90], eax
cmp dword [0x4b9f90], 0
je 0x4479ca
mov edx, dword [0x4e9ea4]
mov dword [0x4b9f94], edx
cmp dword [esi + 0x3a5], 0
jne 0x4479de
push 0
push esi
call fcn.00446dbc
add esp, 8
xor ecx, ecx
mov dword [0x4eab4c], ecx
test byte [esi + 0x257], 1
je 0x447a1c
mov eax, dword [0x4e9ea4]
push eax
mov edx, dword [esi + 0x3a5]
add edx, dword [0x4e9ea0]
sub edx, dword [esi + 0x375]
push edx
mov ecx, dword [0x4b9f88]
push ecx
call fcn.004a3530
add esp, 0xc
jmp 0x447b7c
cmp dword [esi + 0x3a1], 0
jne 0x447b5a
push 3
mov eax, dword [0x4e9ea4]
push eax
mov edx, dword [0x4e9ea0]
push edx
mov ecx, dword [0x4b9f88]
push ecx
call sym.ollydbg.exe__Readmemory
add esp, 0x10
mov dword [0x4e9ea4], eax
mov eax, dword [0x4e9ea0]
push eax
push 0
call sym.ollydbg.exe__Findfixup
add esp, 8
mov dword [0x4eab50], eax
cmp dword [ebp - 0x18], 0x8000
je 0x447a7c
cmp dword [ebp - 0x18], 0xb000
je 0x447a7c
cmp dword [ebp - 0x18], 0xc000
jne 0x447ad6
mov edx, dword [esi + 0x375]
mov dword [0x4eab5c], edx
mov dword [0x4eab58], edx
mov eax, dword [esi + 0x375]
push eax
call sym.ollydbg.exe__Findmemory
pop ecx
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
je 0x447ac9
mov ecx, dword [ebp - 0x48]
mov eax, dword [ecx]
cmp eax, dword [esi + 0x375]
jne 0x447ac9
mov edx, dword [ebp - 0x48]
test byte [edx + 0xb], 8
je 0x447ac9
mov dword [0x4eab54], 1
jmp 0x447b7c
xor ecx, ecx
mov dword [0x4eab54], ecx
jmp 0x447b7c
cmp dword [ebp - 0x18], 0x9000
jne 0x447b7c
cmp dword [esi + 0x251], 0
je 0x447b7c
mov eax, dword [0x4e9ea0]
push eax
call sym.ollydbg.exe__Findmodule
pop ecx
mov dword [0x4eab4c], eax
lea edx, [ebp - 0x34]
push edx
mov ecx, dword [0x4e9ea0]
push ecx
call sym.ollydbg.exe__Finddecode
add esp, 8
mov dword [0x4ea81c], eax
mov eax, dword [ebp - 0x34]
cmp eax, dword [0x4e9ea4]
jae 0x447b2c
xor edx, edx
mov dword [0x4ea81c], edx
lea ecx, [ebp - 0x38]
mov eax, dword [0x4e9ea0]
push ecx
push 0
push eax
call sym.ollydbg.exe__Findhittrace
add esp, 0xc
mov dword [0x4ea820], eax
mov edx, dword [ebp - 0x38]
cmp edx, dword [0x4e9ea4]
jae 0x447b7c
xor ecx, ecx
mov dword [0x4ea820], ecx
jmp 0x447b7c
mov eax, dword [0x4e9ea4]
push eax
mov edx, dword [esi + 0x3a1]
add edx, dword [0x4e9ea0]
push edx
mov ecx, dword [0x4b9f88]
push ecx
call fcn.004a3530
add esp, 0xc
cmp dword [0x4b9f90], 0
je 0x447bb3
cmp dword [ebp - 0x18], 0x9000
jne 0x447bb3
cmp dword [esi + 0x26d], 2
jne 0x447bb3
mov eax, dword [0x4b9f90]
push eax
mov edx, dword [0x4b9f94]
push edx
mov ecx, dword [0x4e9ea0]
push ecx
call sym.ollydbg.exe__Getruntraceprofile
add esp, 0xc
xor eax, eax
mov dword [esi + 0x108], eax
mov edx, dword [esi + 0x37d]
mov dword [0x4ea810], edx
mov dword [0x4e9ea8], edx
mov dword [0x4e9eac], 0xffffffff
cmp dword [esi + 0x3a1], 0
jne 0x447bfd
cmp dword [esi + 0x251], 0
je 0x447bfd
mov eax, dword [esi + 0x251]
push eax
call sym.ollydbg.exe__Findthread
pop ecx
mov dword [0x4eab48], eax
jmp 0x447c05
xor ecx, ecx
mov dword [0x4eab48], ecx
xor eax, eax
cmp dword [ebp - 0x18], 0x8000
mov dword [0x4eab74], eax
je 0x447c2b
cmp dword [ebp - 0x18], 0xb000
je 0x447c2b
cmp dword [ebp - 0x18], 0xc000
jne 0x447d26
cmp dword [0x4dcc50], 0
je 0x447d26
cmp dword [0x4eab48], 0
je 0x447d26
mov edx, dword [0x4eab48]
cmp dword [edx + 0x482], 0
je 0x447d26
mov ecx, dword [0x4eab48]
push 1
mov edx, dword [0x4eab48]
mov eax, dword [ecx + 0x308]
push eax
push 0
mov ecx, dword [edx + 0x318]
push ecx
push 0x4ea824
call fcn.0040dde4
add esp, 0x14
cmp dword [0x4e275c], 0
je 0x447d31
mov eax, dword [0x4eab48]
mov edx, dword [eax + 0x318]
push edx
call sym.ollydbg.exe__Findprocbegin
pop ecx
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
je 0x447d31
mov ecx, dword [0x4eab48]
mov edx, dword [0x4eab48]
mov eax, dword [ecx + 0x30c]
cmp eax, dword [edx + 0x308]
jb 0x447d31
mov ecx, dword [ebp - 0x30]
push ecx
push 0x4dc8cd
call sym.ollydbg.exe__Findsorteddata
add esp, 8
mov dword [ebp - 0x50], eax
test eax, eax
je 0x447d31
mov edx, dword [0x4eab48]
mov eax, dword [ebp - 0x50]
mov ecx, dword [edx + 0x318]
mov edx, dword [eax + 0xc]
add edx, dword [ebp - 0x30]
cmp ecx, edx
jbe 0x447d31
mov ecx, dword [0x4eab48]
mov edx, dword [ebp - 0x50]
mov eax, dword [ecx + 0x318]
mov ecx, dword [edx + 0x10]
add ecx, dword [ebp - 0x30]
cmp eax, ecx
ja 0x447d31
mov eax, dword [0x4eab48]
mov edx, dword [eax + 0x30c]
mov dword [0x4eab74], edx
jmp 0x447d31
push 0x4ea824
call fcn.0040dd94
pop ecx
cmp dword [ebp - 0x18], 0x8000
je 0x447d4c
cmp dword [ebp - 0x18], 0xb000
je 0x447d4c
cmp dword [ebp - 0x18], 0xc000
jne 0x447dc2
cmp dword [0x4eab48], 0
je 0x447dc2
mov ecx, dword [0x4eab48]
cmp dword [ecx + 0x10], 0
je 0x447dc2
mov eax, dword [0x4eab48]
xor ecx, ecx
mov edx, dword [eax + 0x10]
mov dword [ebp - 4], ecx
mov dword [0x4eab78], edx
push 3
mov eax, dword [0x4eab78]
push 4
push eax
push 0x4eab78
call sym.ollydbg.exe__Readmemory
add esp, 0x10
cmp eax, 4
je 0x447d9a
mov dword [0x4eab78], 0xffffffff
cmp dword [0x4eab78], 0xffffffff
je 0x447dcc
mov edx, dword [0x4eab78]
add edx, 4
cmp edx, dword [0x4e9ea0]
jae 0x447dcc
inc dword [ebp - 4]
cmp dword [ebp - 4], 0x200
jl 0x447d74
jmp 0x447dcc
mov dword [0x4eab78], 0xffffffff
xor ecx, ecx
mov dword [0x4eab64], ecx
mov dword [0x4eab60], ecx
cmp dword [ebp - 0x18], 0x9000
jne 0x448162
cmp dword [0x4d91b0], 0
je 0x448162
mov eax, dword [esi + 0x385]
cmp eax, dword [esi + 0x375]
jb 0x448162
mov edx, dword [esi + 0x375]
add edx, dword [esi + 0x379]
cmp edx, dword [esi + 0x385]
jbe 0x448162
mov eax, dword [esi + 0x389]
cmp eax, dword [esi + 0x385]
jbe 0x448162
mov edx, dword [esi + 0x385]
push edx
call sym.ollydbg.exe__Findmemory
pop ecx
mov dword [ebp - 0x48], eax
test eax, eax
je 0x448162
mov edx, dword [esi + 0x375]
add edx, dword [esi + 0x379]
sub edx, dword [esi + 0x385]
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0x28], 0x10
jbe 0x447e6a
mov dword [ebp - 0x28], 0x10
push 3
mov ecx, dword [ebp - 0x28]
push ecx
mov eax, dword [esi + 0x385]
push eax
lea edx, [ebp - 0x70]
push edx
call sym.ollydbg.exe__Readmemory
add esp, 0x10
cmp eax, dword [ebp - 0x28]
jne 0x448162
push 0
mov ecx, dword [esi + 0x385]
push ecx
call sym.ollydbg.exe__Finddecode
add esp, 8
test eax, eax
je 0x447f04
xor edx, edx
mov dl, byte [eax]
and edx, 0x1f
cmp edx, 4
jne 0x447f04
mov eax, dword [esi + 0x375]
cmp eax, dword [ebp - 0x70]
ja 0x448162
mov ecx, dword [esi + 0x375]
add ecx, dword [esi + 0x379]
cmp ecx, dword [ebp - 0x70]
jbe 0x448162
mov eax, dword [ebp - 0x70]
cmp eax, dword [esi + 0x385]
je 0x448162
mov dword [0x4eab6c], 1
mov edx, dword [esi + 0x385]
mov dword [0x4eab60], edx
mov ecx, dword [ebp - 0x70]
mov dword [0x4eab64], ecx
jmp 0x448162
cmp dword [0x4d91b4], 0
je 0x448068
cmp dword [0x4eab4c], 0
je 0x448068
test eax, eax
je 0x448068
xor edx, edx
mov dl, byte [eax]
and edx, 0x1f
cmp edx, 0x1e
jne 0x448068
mov eax, dword [0x4eab4c]
mov ecx, dword [esi + 0x385]
sub ecx, dword [eax + 0xc]
push ecx
mov eax, dword [0x4eab4c]
push eax
call fcn.0047f200
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jl 0x448162
mov edx, dword [esi + 0x385]
mov dword [0x4eab68], edx
mov dword [0x4eab64], edx
mov dword [0x4eab60], edx
jmp 0x448044
mov ecx, dword [ebp - 4]
mov ebx, dword [edx + 0x421]
mov eax, dword [edx + 0xc]
mov edx, dword [esi + 0x385]
lea ecx, [ecx + ecx*8]
sub edx, eax
mov ecx, dword [ebx + ecx + 5]
cmp ecx, edx
jne 0x448059
mov edx, dword [ebp - 4]
mov ecx, dword [0x4eab4c]
mov ecx, dword [ecx + 0x421]
lea edx, [edx + edx*8]
movzx edx, byte [ecx + edx]
cmp edx, 3
je 0x448041
mov edx, dword [ebp - 4]
mov ecx, dword [0x4eab4c]
mov ecx, dword [ecx + 0x421]
lea edx, [edx + edx*8]
mov edx, dword [ecx + edx + 1]
mov ecx, dword [0x4eab60]
sub ecx, eax
cmp edx, ecx
jae 0x448001
mov edx, dword [ebp - 4]
mov ecx, dword [0x4eab4c]
mov ecx, dword [ecx + 0x421]
lea edx, [edx + edx*8]
mov edx, dword [ecx + edx + 1]
add edx, eax
mov dword [0x4eab60], edx
jmp 0x448041
mov edx, dword [ebp - 4]
mov ecx, dword [0x4eab4c]
mov ecx, dword [ecx + 0x421]
lea edx, [edx + edx*8]
mov edx, dword [ecx + edx + 1]
mov ecx, dword [0x4eab64]
sub ecx, eax
cmp edx, ecx
jbe 0x448041
mov edx, dword [ebp - 4]
mov ecx, dword [0x4eab4c]
mov ecx, dword [ecx + 0x421]
lea edx, [edx + edx*8]
mov edx, dword [ecx + edx + 1]
add edx, eax
mov dword [0x4eab64], edx
inc dword [ebp - 4]
mov edx, dword [0x4eab4c]
mov eax, dword [edx + 0x425]
cmp eax, dword [ebp - 4]
jg 0x447f7d
mov dword [0x4eab6c], 2
jmp 0x448162
cmp dword [esi + 0x251], 0
je 0x4480a2
cmp dword [esi + 0x3a9], 0
jle 0x4480a2
mov ecx, dword [esi + 0x3a9]
push ecx
push 6
push 0x4e9eb0
push eax
mov eax, dword [esi + 0x385]
push eax
mov edx, dword [ebp - 0x28]
push edx
lea ecx, [ebp - 0x70]
push ecx
call sym.ollydbg.exe__Disasm
add esp, 0x1c
jmp 0x4480c8
mov edx, dword [esi + 0x251]
push edx
push 5
push 0x4e9eb0
push eax
mov eax, dword [esi + 0x385]
push eax
mov ecx, dword [ebp - 0x28]
push ecx
lea eax, [ebp - 0x70]
push eax
call sym.ollydbg.exe__Disasm
add esp, 0x1c
and dword [0x4ea4b4], 0xf0
cmp dword [0x4ea4b4], 0x50
je 0x4480e4
cmp dword [0x4ea4e4], 0
jle 0x4480f0
mov dword [0x4eab6c], 1
jmp 0x4480f8
xor edx, edx
mov dword [0x4eab6c], edx
cmp dword [0x4ea4b4], 0x50
je 0x44811c
cmp dword [0x4ea4b4], 0x60
jne 0x448162
cmp dword [0x4ea4e4], 0
jg 0x44811c
cmp dword [0x4d91b8], 0
je 0x448162
mov ecx, dword [0x4ea4e0]
cmp ecx, dword [esi + 0x375]
jb 0x448162
mov eax, dword [esi + 0x375]
add eax, dword [esi + 0x379]
cmp eax, dword [0x4ea4e0]
jbe 0x448162
mov edx, dword [0x4ea4e0]
cmp edx, dword [esi + 0x385]
je 0x448162
mov ecx, dword [esi + 0x385]
mov dword [0x4eab60], ecx
mov eax, dword [0x4ea4e0]
mov dword [0x4eab64], eax
mov edx, dword [0x4e9eac]
cmp edx, dword [esi + 0x241]
je 0x4483d0
cmp dword [ebp - 0x18], 0x9000
jne 0x4482e3
mov ecx, dword [0x4ea810]
mov dword [0x4e9ea8], ecx
mov eax, dword [0x4e9ea0]
add eax, dword [0x4e9ea4]
cmp eax, dword [0x4e9ea8]
jbe 0x4482c9
cmp dword [esi + 0x251], 0
je 0x448240
cmp dword [esi + 0x3a9], 0
jle 0x448240
cmp dword [esi + 0x3a1], 0
jne 0x448240
mov ecx, dword [0x4eab70]
mov edx, dword [esi + 0x3a9]
shl ecx, 0x10
push edx
or ecx, 6
cmp dword [0x4ea81c], 0
push ecx
push 0x4e9eb0
jne 0x4481ed
xor eax, eax
jmp 0x4481fe
mov eax, dword [0x4ea81c]
add eax, dword [0x4e9ea8]
sub eax, dword [0x4e9ea0]
push eax
mov edx, dword [0x4e9ea8]
push edx
mov ecx, dword [0x4e9ea8]
sub ecx, dword [0x4e9ea0]
mov edx, dword [0x4b9f88]
add edx, dword [0x4e9ea8]
mov eax, dword [0x4e9ea4]
sub eax, ecx
sub edx, dword [0x4e9ea0]
push eax
push edx
call sym.ollydbg.exe__Disasm
add esp, 0x1c
add dword [0x4ea810], eax
jmp 0x448378
mov ecx, dword [esi + 0x251]
push ecx
mov eax, 3
cmp dword [esi + 0x3a1], 0
jne 0x448258
add eax, 2
mov edx, dword [0x4eab70]
shl edx, 0x10
or eax, edx
push eax
push 0x4e9eb0
cmp dword [0x4ea81c], 0
jne 0x448276
xor ecx, ecx
jmp 0x448288
mov ecx, dword [0x4ea81c]
add ecx, dword [0x4e9ea8]
sub ecx, dword [0x4e9ea0]
push ecx
mov eax, dword [0x4e9ea8]
mov edx, dword [0x4e9ea8]
push eax
sub edx, dword [0x4e9ea0]
mov eax, dword [0x4e9ea4]
sub eax, edx
mov edx, dword [0x4b9f88]
add edx, dword [0x4e9ea8]
push eax
sub edx, dword [0x4e9ea0]
push edx
call sym.ollydbg.exe__Disasm
add esp, 0x1c
add dword [0x4ea810], eax
jmp 0x448378
mov byte [0x4e9eb4], 0
mov byte [0x4e9fb4], 0
mov byte [0x4ea0b4], 0
jmp 0x448378
cmp dword [ebp - 0x18], 0xd000
jne 0x44835e
mov ecx, dword [0x4ea810]
mov dword [0x4e9ea8], ecx
cmp dword [esi + 0x259], 0
je 0x448347
mov eax, dword [0x4e9ea0]
add eax, dword [0x4e9ea4]
cmp eax, dword [0x4e9ea8]
jbe 0x448347
push 5
push 0x4e9eb0
mov edx, dword [0x4e9ea8]
push edx
mov ecx, dword [0x4e9ea4]
push ecx
mov eax, dword [0x4e9ea0]
push eax
mov edx, dword [0x4b9f88]
push edx
call dword [esi + 0x259]
add esp, 0x18
add dword [0x4ea810], eax
jmp 0x448378
mov byte [0x4e9eb4], 0
mov byte [0x4e9fb4], 0
mov byte [0x4ea0b4], 0
jmp 0x448378
mov ecx, dword [esi + 0x241]
imul ecx, dword [ebp - 0x1c]
imul ecx, dword [ebp - 0x20]
add ecx, dword [0x4e9ea0]
mov dword [0x4e9ea8], ecx
mov eax, dword [0x4b9f88]
add eax, dword [0x4e9ea8]
sub eax, dword [0x4e9ea0]
mov dword [0x4ea818], eax
mov edx, dword [esi + 0x241]
mov dword [0x4e9eac], edx
cmp dword [esi + 0x3a5], 0
je 0x4483bd
mov ecx, dword [esi + 0x3a5]
add ecx, dword [0x4e9ea8]
sub ecx, dword [esi + 0x375]
mov dword [0x4ea814], ecx
jmp 0x4483c4
xor eax, eax
mov dword [0x4ea814], eax
mov edx, dword [0x4e9ea8]
mov dword [esi + 0x381], edx
xor edi, edi
cmp dword [ebp + 0x18], 0
jne 0x44885a
cmp dword [esi + 0x3a1], 0
jne 0x4484c0
cmp dword [ebp - 0x18], 0x8000
je 0x448404
cmp dword [ebp - 0x18], 0xb000
je 0x448404
cmp dword [ebp - 0x18], 0xc000
jne 0x44847f
cmp dword [0x4e2758], 0
je 0x44847f
cmp dword [0x4eab48], 0
je 0x44847f
mov eax, dword [0x4eab48]
cmp dword [eax + 0x482], 0
je 0x44847f
cmp dword [esi + 0x251], 0
je 0x44847f
mov ecx, dword [0x4eab48]
lea edx, [ebp - 0x170]
push 0x100
push edx
mov eax, dword [0x4e9ea8]
mov edx, dword [0x4eab48]
sub eax, dword [ecx + 0x30c]
push eax
mov ecx, dword [edx + 0x318]
push ecx
push 0
call sym.ollydbg.exe__Getbprelname
add esp, 0x14
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 1
jne 0x448484
xor eax, eax
mov al, byte [ebp - 0x170]
cmp eax, 0x20
jne 0x448484
xor edx, edx
mov dword [ebp - 4], edx
jmp 0x448484
xor ecx, ecx
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 0
jne 0x4484cd
push 0
push 0xe8
lea eax, [ebp - 0x170]
push eax
xor edx, edx
cmp dword [0x4e2740], 0
jne 0x4484a6
add edx, 2
or edx, 0x2c
mov ecx, dword [0x4e9ea8]
push edx
push 0
push ecx
call sym.ollydbg.exe__Decodeaddress
add esp, 0x18
mov dword [ebp - 4], eax
jmp 0x4484cd
xor eax, eax
mov dword [ebp - 4], eax
mov byte [ebp + eax - 0x170], 0
cmp dword [ebp - 0x18], 0x9000
je 0x4484df
cmp dword [ebp - 0x18], 0xd000
jne 0x4484ed
mov edx, dword [0x4ea810]
cmp edx, dword [esi + 0x385]
ja 0x448519
cmp dword [ebp - 0x18], 0x8000
je 0x448508
cmp dword [ebp - 0x18], 0xb000
je 0x448508
cmp dword [ebp - 0x18], 0xc000
jne 0x448531
mov ecx, dword [0x4e9ea8]
add ecx, dword [ebp - 0x20]
cmp ecx, dword [esi + 0x385]
jbe 0x448531
mov eax, dword [0x4e9ea8]
cmp eax, dword [esi + 0x389]
jae 0x448531
mov edx, dword [ebp + 0x10]
mov dword [edx], 8
jmp 0x44853a
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 1
cmp dword [ebp - 4], 0
jle 0x448559
cmp dword [0x4e273c], 0
je 0x448559
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x10]
mov edx, dword [eax]
and edx, 0xfffffffe
or edx, 2
mov dword [ecx], edx
xor edi, edi
mov eax, dword [esi + 0x375]
add eax, dword [esi + 0x379]
cmp eax, dword [0x4e9ea8]
jbe 0x44ae34
cmp dword [0x4e2738], 1
je 0x448585
cmp dword [0x4e2738], 2
jne 0x4485a5
cmp dword [ebp - 4], 0
jle 0x4485a5
lea edx, [ebp - 0x170]
push edx
push 0x4ba0da
mov ecx, dword [ebp + 8]
push ecx
call fcn.004a6c2c
add esp, 0xc
mov edi, eax
cmp dword [0x4e2738], 2
jne 0x4485b8
cmp dword [ebp - 4], 0
jg 0x4486c8
cmp dword [esi + 0x395], 0
je 0x4486ac
mov eax, dword [esi + 0x395]
cmp eax, dword [0x4e9ea8]
jae 0x448600
mov edx, dword [0x4e9ea8]
lea ecx, [esi + 0x399]
sub edx, dword [esi + 0x395]
push edx
push ecx
push 8
push str._.s_lX
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.004a6c2c
add esp, 0x14
add edi, eax
jmp 0x448669
mov edx, dword [esi + 0x395]
cmp edx, dword [0x4e9ea8]
jbe 0x44863b
mov ecx, dword [esi + 0x395]
lea eax, [esi + 0x399]
sub ecx, dword [0x4e9ea8]
push ecx
push eax
push 8
push str._.s__lX
mov edx, dword [ebp + 8]
add edx, edi
push edx
call fcn.004a6c2c
add esp, 0x14
add edi, eax
jmp 0x448669
lea ecx, [esi + 0x399]
push ecx
push 8
push 0x4ba0f2
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.004a6c2c
mov edx, dword [ebp + 0x10]
add edi, eax
mov eax, dword [ebp + 0x10]
add esp, 0x10
mov ecx, dword [edx]
and ecx, 0xfffffffe
or ecx, 2
mov dword [eax], ecx
mov edx, dword [ebp + 8]
cmp edi, 8
lea ecx, [edx + edi]
mov dword [ebp - 0x54], ecx
jge 0x448686
mov eax, dword [ebp - 0x54]
mov byte [eax], 0x20
inc edi
inc dword [ebp - 0x54]
cmp edi, 8
jl 0x448677
mov edx, dword [ebp + 8]
mov byte [edx + edi], 0x20
inc edi
mov ecx, dword [0x4e9ea8]
push ecx
push 0x4ba0fb
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.004a6c2c
add esp, 0xc
add edi, eax
jmp 0x4486c8
mov edx, dword [0x4e9ea8]
push edx
push 0x4ba0fb
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
call fcn.004a6c2c
add esp, 0xc
add edi, eax
cmp dword [0x4e2738], 0
jne 0x448709
cmp dword [ebp - 4], 0
jle 0x448709
test edi, edi
jle 0x4486ed
cmp edi, 8
jge 0x4486ed
mov eax, dword [ebp + 8]
mov byte [eax + edi], 0x20
inc edi
cmp edi, 8
jl 0x4486e0
lea edx, [ebp - 0x170]
push edx
push 0x4ba101
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
call fcn.004a6c2c
add esp, 0xc
add edi, eax
cmp dword [esi + 0x3a1], 0
jne 0x44ae34
cmp dword [0x4eab48], 0
je 0x448793
mov eax, dword [0x4eab48]
cmp dword [eax + 0x482], 0
je 0x448793
cmp dword [esi + 0x251], 0
je 0x448793
cmp dword [ebp - 0x18], 0x9000
jne 0x44875c
cmp dword [0x4d5a5c], 3
je 0x44875c
mov edx, dword [0x4eab48]
mov ecx, dword [edx + 0x318]
cmp ecx, dword [0x4e9ea8]
je 0x44878a
cmp dword [ebp - 0x18], 0x8000
je 0x448777
cmp dword [ebp - 0x18], 0xb000
je 0x448777
cmp dword [ebp - 0x18], 0xc000
jne 0x448793
mov eax, dword [0x4eab48]
mov edx, dword [eax + 0x308]
cmp edx, dword [0x4e9ea8]
jne 0x448793
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x10
cmp dword [ebp - 0x18], 0x9000
jne 0x44ae34
cmp dword [esi + 0x251], 0
je 0x44ae34
mov eax, dword [0x4e9ea8]
push eax
call sym.ollydbg.exe__Getbreakpointtype
test ah, 2
pop ecx
je 0x44ae34
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x10]
mov ecx, dword [edx]
and ecx, 0xfffffff5
or ecx, 0x20
mov dword [eax], ecx
mov edx, dword [ebp + 8]
mov ecx, dword [0x4e9ea8]
add edx, edi
inc edx
push edx
push 0x38
push ecx
call sym.ollydbg.exe__Findname
add esp, 0xc
mov dword [ebp - 4], eax
test eax, eax
jne 0x448823
push 0
push 0x3b
mov edx, dword [0x4e9ea8]
push edx
call sym.ollydbg.exe__Findname
add esp, 0xc
test eax, eax
jne 0x448823
push 0
push 0x30
mov ecx, dword [0x4e9ea8]
push ecx
call sym.ollydbg.exe__Findname
add esp, 0xc
test eax, eax
je 0x44ae34
mov eax, dword [ebp + 8]
mov byte [eax + edi], 0x20
inc edi
cmp dword [ebp - 4], 0
jle 0x448836
add edi, dword [ebp - 4]
jmp 0x44884f
mov edx, dword [ebp + 8]
mov ecx, dword [0x4e9ea8]
add edx, edi
push edx
push 0x3c
push ecx
call sym.ollydbg.exe__Findname
add esp, 0xc
add edi, eax
mov eax, dword [ebp + 0x10]
or dword [eax], 8
jmp 0x44ae34
cmp dword [ebp - 0x18], 0x1000
je 0x44889e
cmp dword [ebp - 0x18], 0xa000
je 0x44889e
cmp dword [ebp - 0x18], 0x2000
je 0x44889e
cmp dword [ebp - 0x18], 0x3000
je 0x44889e
cmp dword [ebp - 0x18], 0xb000
je 0x448894
cmp dword [ebp - 0x18], 0xc000
jne 0x448dcc
cmp dword [ebp + 0x18], 2
jne 0x448dcc
cmp dword [ebp + 0x18], 1
jne 0x448a61
cmp dword [ebp - 0x18], 0x1000
je 0x4488be
cmp dword [ebp - 0x18], 0xa000
jne 0x448a61
xor edx, edx
mov dword [ebp - 4], edx
mov ecx, dword [ebp + 0xc]
lea eax, [ecx + 2]
mov dword [ebp - 0x54], eax
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x1c]
jge 0x448a53
xor ecx, ecx
mov eax, dword [0x4e9ea8]
mov dword [ebp - 0xc], ecx
mov edx, dword [0x4e9ea0]
add edx, dword [0x4e9ea4]
add eax, dword [ebp - 4]
cmp eax, edx
jb 0x44890c
push 0x4ba105
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
call fcn.004a6c2c
add esp, 8
add edi, eax
jmp 0x44897d
mov eax, dword [0x4ea818]
mov edx, dword [ebp - 4]
xor ecx, ecx
mov cl, byte [eax + edx]
push ecx
push 0x4ba109
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.004a6c2c
mov edx, dword [0x4e9ea8]
add esp, 0xc
add edx, dword [ebp - 4]
add edi, eax
cmp edx, dword [esi + 0x385]
jb 0x448958
mov ecx, dword [0x4e9ea8]
add ecx, dword [ebp - 4]
cmp ecx, dword [esi + 0x389]
jae 0x448958
mov dword [ebp - 0xc], 8
cmp dword [0x4ea814], 0
je 0x44897d
mov eax, dword [0x4ea818]
mov edx, dword [ebp - 4]
mov cl, byte [eax + edx]
mov eax, dword [0x4ea814]
mov edx, dword [ebp - 4]
cmp cl, byte [eax + edx]
je 0x44897d
or dword [ebp - 0xc], 2
cmp dword [0x4eab50], 0
je 0x448a11
cmp dword [0x4e2750], 0
je 0x448a11
jmp 0x44899c
add dword [0x4eab50], 8
mov ecx, dword [0x4eab50]
cmp dword [ecx], 0
je 0x4489c3
mov eax, dword [0x4eab50]
mov ecx, dword [0x4eab50]
mov edx, dword [eax]
mov eax, dword [0x4e9ea8]
add eax, dword [ebp - 4]
add edx, dword [ecx + 4]
cmp edx, eax
jbe 0x448995
mov edx, dword [0x4eab50]
mov eax, dword [0x4e9ea8]
add eax, dword [ebp - 4]
mov ecx, dword [edx]
cmp ecx, eax
ja 0x448a11
mov edx, dword [0x4eab50]
mov eax, dword [0x4eab50]
mov ecx, dword [edx]
mov edx, dword [0x4e9ea8]
add edx, dword [ebp - 4]
add ecx, dword [eax + 4]
cmp ecx, edx
jbe 0x448a11
mov ecx, dword [0x4e9ea8]
mov eax, dword [esi + 0x375]
add eax, dword [esi + 0x379]
add ecx, dword [ebp - 4]
cmp ecx, eax
jae 0x448a11
or dword [ebp - 0xc], 4
mov dl, byte [ebp - 0xc]
mov ecx, dword [ebp - 0x54]
mov byte [ecx], dl
mov eax, dword [ebp - 0x54]
mov byte [eax - 1], dl
mov eax, dword [ebp - 0x54]
mov byte [eax - 2], dl
mov ecx, dword [ebp - 4]
and ecx, 0x80000003
jns 0x448a35
dec ecx
or ecx, 0xfffffffc
inc ecx
cmp ecx, 3
jne 0x448a40
mov eax, dword [ebp - 0x54]
or byte [eax], 0x40
inc dword [ebp - 4]
add dword [ebp - 0x54], 3
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x1c]
jl 0x4488d8
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x80
jmp 0x44ae34
cmp dword [ebp - 0x18], 0x1000
je 0x448a80
cmp dword [ebp - 0x18], 0x2000
je 0x448a80
cmp dword [ebp - 0x18], 0xb000
jne 0x448bed
xor eax, eax
mov dword [ebp - 0x24], eax
xor edi, edi
mov eax, dword [ebp + 0xc]
mov edx, eax
mov dword [ebp - 0x58], edx
mov ecx, dword [ebp + 8]
mov eax, ecx
mov dword [ebp - 0x54], eax
cmp edi, dword [ebp - 0x1c]
jge 0x448b92
mov eax, dword [0x4e9ea0]
mov ecx, dword [0x4e9ea8]
add eax, dword [0x4e9ea4]
xor edx, edx
add ecx, edi
mov dword [ebp - 0xc], edx
cmp ecx, eax
jb 0x448ac7
mov edx, dword [ebp - 0x54]
mov byte [edx], 0x20
jmp 0x448b7a
mov ecx, dword [0x4ea818]
cmp dword [0x4de5b0], 0
mov al, byte [ecx + edi]
mov byte [ebp - 0x3d], al
je 0x448aea
mov dl, byte [ebp - 0x3d]
push edx
call sym.ollydbg.exe__IstextA
pop ecx
test eax, eax
je 0x448b26
cmp byte [ebp - 0x3d], 0
je 0x448b18
xor ecx, ecx
mov cl, byte [ebp - 0x3d]
cmp ecx, 0xa
je 0x448b18
xor eax, eax
mov al, byte [ebp - 0x3d]
cmp eax, 0xd
je 0x448b18
xor edx, edx
mov dl, byte [ebp - 0x3d]
cmp edx, 0xc
je 0x448b18
xor ecx, ecx
mov cl, byte [ebp - 0x3d]
cmp ecx, 9
jne 0x448b1c
mov byte [ebp - 0x3d], 0x2e
mov eax, dword [ebp - 0x54]
mov dl, byte [ebp - 0x3d]
mov byte [eax], dl
jmp 0x448b2c
mov ecx, dword [ebp - 0x54]
mov byte [ecx], 0x2e
mov eax, dword [0x4e9ea8]
add eax, edi
cmp eax, dword [esi + 0x385]
jb 0x448b59
mov edx, dword [0x4e9ea8]
add edx, edi
cmp edx, dword [esi + 0x389]
jae 0x448b59
mov dword [ebp - 0xc], 8
mov dword [ebp - 0x24], 1
cmp dword [0x4ea814], 0
je 0x448b7a
mov ecx, dword [0x4ea818]
mov edx, dword [0x4ea814]
mov al, byte [ecx + edi]
cmp al, byte [edx + edi]
je 0x448b7a
or dword [ebp - 0xc], 2
mov cl, byte [ebp - 0xc]
mov eax, dword [ebp - 0x58]
mov byte [eax], cl
inc edi
inc dword [ebp - 0x58]
inc dword [ebp - 0x54]
cmp edi, dword [ebp - 0x1c]
jl 0x448aa0
mov edx, dword [ebp + 8]
mov byte [edx + edi], 0
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x80
cmp dword [ebp - 0x24], 0
je 0x44ae34
cmp dword [ebp - 0x18], 0xb000
jne 0x44ae34
xor eax, eax
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0xc]
mov ecx, edx
mov dword [ebp - 0x58], ecx
jmp 0x448bd4
mov eax, dword [ebp - 0x58]
and byte [eax], 0xf7
inc dword [ebp - 4]
inc dword [ebp - 0x58]
cmp dword [ebp - 4], 0x100
jge 0x448be2
cmp edi, dword [ebp - 4]
jge 0x448bc8
mov edx, dword [ebp + 0x10]
or dword [edx], 8
jmp 0x44ae34
cmp dword [ebp - 0x18], 0xa000
je 0x448c0c
cmp dword [ebp - 0x18], 0x3000
je 0x448c0c
cmp dword [ebp - 0x18], 0xc000
jne 0x44ae34
xor ecx, ecx
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x1c]
imul dword [ebp - 0x20]
shr eax, 1
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], 2
xor edi, edi
mov eax, dword [ebp + 0xc]
mov edx, eax
mov dword [ebp - 0x54], edx
mov ecx, dword [ebp + 8]
mov eax, ecx
mov dword [ebp - 0x58], eax
cmp edi, dword [ebp - 0x1c]
jge 0x448d6f
xor edx, edx
mov ecx, edi
mov dword [ebp - 0xc], edx
mov eax, dword [0x4e9ea0]
imul ecx, dword [ebp - 0x20]
add ecx, dword [0x4e9ea8]
add eax, dword [0x4e9ea4]
cmp ecx, eax
jb 0x448c6b
mov edx, dword [ebp - 0x58]
mov word [edx], 0x20
jmp 0x448d23
lea ecx, [edi + 1]
mov eax, dword [0x4e9ea0]
imul ecx, dword [ebp - 0x20]
add ecx, dword [0x4e9ea8]
add eax, dword [0x4e9ea4]
cmp ecx, eax
jbe 0x448cbd
mov edx, dword [ebp - 0x58]
mov word [edx], 0x3f
mov dword [ebp - 0xc], 1
cmp dword [0x4ea814], 0
je 0x448d23
mov ecx, dword [0x4ea818]
mov edx, dword [0x4ea814]
mov al, byte [ecx + edi*2]
cmp al, byte [edx + edi*2]
je 0x448d23
or dword [ebp - 0xc], 2
jmp 0x448d23
mov ecx, dword [0x4ea818]
mov ax, word [ecx + edi*2]
test ax, ax
je 0x448cf6
cmp ax, 0xa
je 0x448cf6
cmp ax, 0xd
je 0x448cf6
cmp ax, 0xc
je 0x448cf6
cmp ax, 9
je 0x448cf6
cmp ax, 0xffff
je 0x448cf6
cmp ax, 0xfeff
je 0x448cf6
cmp ax, 0xfffe
jne 0x448cfa
mov ax, 0x2e
mov edx, dword [ebp - 0x58]
mov word [edx], ax
cmp dword [0x4ea814], 0
je 0x448d23
mov ecx, dword [0x4ea818]
mov edx, dword [0x4ea814]
mov ax, word [ecx + edi*2]
cmp ax, word [edx + edi*2]
je 0x448d23
or dword [ebp - 0xc], 2
lea ecx, [edi + 1]
imul ecx, dword [ebp - 0x20]
add ecx, dword [0x4e9ea8]
cmp ecx, dword [esi + 0x385]
jbe 0x448d56
mov eax, edi
imul dword [ebp - 0x20]
add eax, dword [0x4e9ea8]
cmp eax, dword [esi + 0x389]
jae 0x448d56
or dword [ebp - 0xc], 8
mov dword [ebp - 0x24], 1
mov dl, byte [ebp - 0xc]
mov ecx, dword [ebp - 0x54]
mov byte [ecx], dl
inc edi
inc dword [ebp - 0x54]
add dword [ebp - 0x58], 2
cmp edi, dword [ebp - 0x1c]
jl 0x448c3e
mov eax, dword [ebp + 8]
mov word [eax + edi*2], 0
mov edx, dword [ebp + 0x10]
mov dword [edx], 0x280
cmp dword [ebp - 0x24], 0
je 0x44ae34
cmp dword [ebp - 0x18], 0xc000
jne 0x44ae34
xor ecx, ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp + 0xc]
mov edx, eax
mov dword [ebp - 0x54], edx
jmp 0x448db3
mov ecx, dword [ebp - 0x54]
and byte [ecx], 0xf7
inc dword [ebp - 4]
inc dword [ebp - 0x54]
cmp dword [ebp - 4], 0x100
jge 0x448dc1
cmp edi, dword [ebp - 4]
jge 0x448da7
mov eax, dword [ebp + 0x10]
or dword [eax], 8
jmp 0x44ae34
cmp dword [ebp - 0x18], 0x4000
je 0x448deb
cmp dword [ebp - 0x18], 0x5000
je 0x448deb
cmp dword [ebp - 0x18], 0x6000
jne 0x4490e1
xor edx, edx
mov dword [ebp - 4], edx
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 0x1c]
jge 0x4490d3
mov eax, dword [ebp - 4]
imul dword [ebp - 0x20]
mov edx, dword [0x4e9ea0]
add edx, dword [0x4e9ea4]
add eax, dword [0x4e9ea8]
cmp eax, edx
jb 0x448e3d
push 0x4ba02e
mov ecx, dword [esi + 0x261]
dec ecx
push ecx
push str._s
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.004a6c2c
add esp, 0x10
jmp 0x449009
mov edx, dword [ebp - 4]
mov ecx, dword [0x4e9ea0]
inc edx
imul edx, dword [ebp - 0x20]
add edx, dword [0x4e9ea8]
add ecx, dword [0x4e9ea4]
cmp edx, ecx
jbe 0x448e80
push 0x4ba114
mov eax, dword [esi + 0x261]
dec eax
push eax
push str._s
mov edx, dword [ebp + 8]
add edx, edi
push edx
call fcn.004a6c2c
add esp, 0x10
jmp 0x449009
cmp dword [ebp - 0x20], 2
jne 0x448f4f
cmp dword [ebp - 0x18], 0x4000
jne 0x448ec4
mov ecx, dword [ebp - 4]
mov eax, dword [0x4ea818]
imul ecx, dword [ebp - 0x20]
movsx edx, word [eax + ecx]
push edx
mov ecx, dword [esi + 0x261]
dec ecx
push ecx
push str._hi
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.004a6c2c
add esp, 0x10
jmp 0x449009
cmp dword [ebp - 0x18], 0x5000
jne 0x448eff
mov edx, dword [ebp - 4]
mov ecx, dword [0x4ea818]
imul edx, dword [ebp - 0x20]
movsx eax, word [ecx + edx]
push eax
mov edx, dword [esi + 0x261]
dec edx
push edx
push str._hu
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
call fcn.004a6c2c
add esp, 0x10
jmp 0x449009
xor ebx, ebx
mov eax, dword [ebp + 8]
lea edx, [eax + edi]
mov dword [ebp - 0x5c], edx
jmp 0x448f16
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x20
inc ebx
inc dword [ebp - 0x5c]
mov eax, dword [esi + 0x261]
add eax, 0xfffffffb
cmp ebx, eax
jl 0x448f0c
mov edx, dword [ebp - 4]
mov ecx, dword [0x4ea818]
imul edx, dword [ebp - 0x20]
movsx eax, word [ecx + edx]
push eax
push str._04hX
mov edx, dword [ebp + 8]
add edx, edi
add ebx, edx
push ebx
call fcn.004a6c2c
add esp, 0xc
jmp 0x449009
cmp dword [ebp - 0x18], 0x4000
jne 0x448f88
mov ecx, dword [ebp - 4]
mov eax, dword [0x4ea818]
imul ecx, dword [ebp - 0x20]
mov edx, dword [eax + ecx]
push edx
mov ecx, dword [esi + 0x261]
dec ecx
push ecx
push str._li
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.004a6c2c
add esp, 0x10
jmp 0x449009
cmp dword [ebp - 0x18], 0x5000
jne 0x448fbf
mov edx, dword [ebp - 4]
mov ecx, dword [0x4ea818]
imul edx, dword [ebp - 0x20]
mov eax, dword [ecx + edx]
push eax
mov edx, dword [esi + 0x261]
dec edx
push edx
push str._lu
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
call fcn.004a6c2c
add esp, 0x10
jmp 0x449009
xor ebx, ebx
mov eax, dword [ebp + 8]
lea edx, [eax + edi]
mov dword [ebp - 0x5c], edx
jmp 0x448fd6
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x20
inc ebx
inc dword [ebp - 0x5c]
mov eax, dword [esi + 0x261]
add eax, 0xfffffff7
cmp ebx, eax
jl 0x448fcc
mov edx, dword [ebp - 4]
mov ecx, dword [0x4ea818]
imul edx, dword [ebp - 0x20]
mov eax, dword [ecx + edx]
push eax
push 0x4ba135
mov edx, dword [ebp + 8]
add edx, edi
add ebx, edx
push ebx
call fcn.004a6c2c
add esp, 0xc
mov ecx, dword [ebp - 4]
inc ecx
imul ecx, dword [ebp - 0x20]
add ecx, dword [0x4e9ea8]
cmp ecx, dword [esi + 0x385]
jbe 0x44903c
mov eax, dword [ebp - 4]
imul dword [ebp - 0x20]
add eax, dword [0x4e9ea8]
cmp eax, dword [esi + 0x389]
jae 0x44903c
mov dword [ebp - 0xc], 8
jmp 0x449041
xor edx, edx
mov dword [ebp - 0xc], edx
cmp dword [0x4ea814], 0
je 0x44909d
xor ebx, ebx
jmp 0x44907a
mov eax, dword [ebp - 4]
imul dword [ebp - 0x20]
mov edx, dword [0x4ea814]
lea ecx, [edx + eax]
mov edx, dword [ebp - 4]
imul edx, dword [ebp - 0x20]
mov al, byte [ecx + ebx]
mov ecx, dword [0x4ea818]
lea edx, [ecx + edx]
cmp al, byte [edx + ebx]
je 0x449079
or dword [ebp - 0xc], 2
inc ebx
cmp ebx, dword [ebp - 0x20]
jge 0x44909d
mov eax, dword [ebp - 4]
mov ecx, dword [0x4e9ea0]
imul dword [ebp - 0x20]
add eax, dword [0x4e9ea8]
add ecx, dword [0x4e9ea4]
add eax, ebx
cmp eax, ecx
jb 0x44904e
xor ebx, ebx
mov eax, dword [ebp + 0xc]
lea edx, [eax + edi]
mov dword [ebp - 0x5c], edx
jmp 0x4490b6
mov cl, byte [ebp - 0xc]
mov eax, dword [ebp - 0x5c]
mov byte [eax], cl
inc ebx
inc dword [ebp - 0x5c]
cmp ebx, dword [esi + 0x261]
jl 0x4490aa
add edi, dword [esi + 0x261]
inc dword [ebp - 4]
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x1c]
jl 0x448dfc
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x80
jmp 0x44ae34
cmp dword [ebp - 0x18], 0x7000
jne 0x4492f6
xor eax, eax
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x1c]
jge 0x4492e8
mov ecx, dword [ebp - 4]
mov eax, dword [0x4e9ea0]
imul ecx, dword [ebp - 0x20]
add ecx, dword [0x4e9ea8]
add eax, dword [0x4e9ea4]
cmp ecx, eax
jb 0x449140
push 0x4ba02e
mov edx, dword [esi + 0x261]
dec edx
push edx
push str._s
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
call fcn.004a6c2c
add esp, 0x10
jmp 0x44921d
mov eax, dword [ebp - 4]
inc eax
imul dword [ebp - 0x20]
mov edx, dword [0x4e9ea0]
add edx, dword [0x4e9ea4]
add eax, dword [0x4e9ea8]
cmp eax, edx
jbe 0x449182
push 0x4ba114
mov ecx, dword [esi + 0x261]
dec ecx
push ecx
push str._s
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.004a6c2c
add esp, 0x10
jmp 0x44921d
cmp dword [ebp - 0x20], 4
jne 0x4491a9
mov edx, dword [ebp - 4]
mov ecx, dword [0x4ea818]
imul edx, dword [ebp - 0x20]
push dword [ecx + edx]
lea edx, [ebp - 0x170]
push edx
call sym.ollydbg.exe__Printfloat4
add esp, 8
jmp 0x4491fb
cmp dword [ebp - 0x20], 8
jne 0x4491d3
mov ecx, dword [ebp - 4]
mov eax, dword [0x4ea818]
imul ecx, dword [ebp - 0x20]
push dword [eax + ecx + 4]
push dword [eax + ecx]
lea ecx, [ebp - 0x170]
push ecx
call sym.ollydbg.exe__Printfloat8
add esp, 0xc
jmp 0x4491fb
mov eax, dword [ebp - 4]
imul dword [ebp - 0x20]
mov edx, dword [0x4ea818]
mov cx, word [edx + eax + 8]
push ecx
push dword [edx + eax + 4]
push dword [edx + eax]
lea eax, [ebp - 0x170]
push eax
call sym.ollydbg.exe__Printfloat10
add esp, 0x10
lea edx, [ebp - 0x170]
push edx
mov ecx, dword [esi + 0x261]
dec ecx
push ecx
push str._s
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.004a6c2c
add esp, 0x10
mov edx, dword [ebp - 4]
inc edx
imul edx, dword [ebp - 0x20]
add edx, dword [0x4e9ea8]
cmp edx, dword [esi + 0x385]
jbe 0x449251
mov ecx, dword [ebp - 4]
imul ecx, dword [ebp - 0x20]
add ecx, dword [0x4e9ea8]
cmp ecx, dword [esi + 0x389]
jae 0x449251
mov dword [ebp - 0xc], 8
jmp 0x449256
xor eax, eax
mov dword [ebp - 0xc], eax
cmp dword [0x4ea814], 0
je 0x4492b2
xor ebx, ebx
jmp 0x44928f
mov eax, dword [ebp - 4]
imul dword [ebp - 0x20]
mov edx, dword [0x4ea814]
lea ecx, [edx + eax]
mov edx, dword [ebp - 4]
imul edx, dword [ebp - 0x20]
mov al, byte [ecx + ebx]
mov ecx, dword [0x4ea818]
lea edx, [ecx + edx]
cmp al, byte [edx + ebx]
je 0x44928e
or dword [ebp - 0xc], 2
inc ebx
cmp ebx, dword [ebp - 0x20]
jge 0x4492b2
mov eax, dword [ebp - 4]
mov ecx, dword [0x4e9ea0]
imul dword [ebp - 0x20]
add eax, dword [0x4e9ea8]
add ecx, dword [0x4e9ea4]
add eax, ebx
cmp eax, ecx
jb 0x449263
xor ebx, ebx
mov eax, dword [ebp + 0xc]
lea edx, [eax + edi]
mov dword [ebp - 0x60], edx
jmp 0x4492cb
mov cl, byte [ebp - 0xc]
mov eax, dword [ebp - 0x60]
mov byte [eax], cl
inc ebx
inc dword [ebp - 0x60]
cmp ebx, dword [esi + 0x261]
jl 0x4492bf
add edi, dword [esi + 0x261]
inc dword [ebp - 4]
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x1c]
jl 0x4490ff
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x80
jmp 0x44ae34
cmp dword [ebp - 0x18], 0x8000
je 0x449315
cmp dword [ebp - 0x18], 0xb000
je 0x449315
cmp dword [ebp - 0x18], 0xc000
jne 0x449cf2
mov eax, dword [0x4e9ea8]
add eax, dword [ebp - 0x20]
cmp eax, dword [esi + 0x385]
jbe 0x44933e
mov edx, dword [0x4e9ea8]
cmp edx, dword [esi + 0x389]
jae 0x44933e
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 8
jmp 0x449345
mov eax, dword [ebp + 0x10]
xor edx, edx
mov dword [eax], edx
cmp dword [ebp + 0x18], 1
jne 0x449704
xor ecx, ecx
mov dword [ebp - 0xc], ecx
mov edi, ecx
cmp dword [esi + 0x265], 0
je 0x4494f8
mov eax, dword [ebp + 8]
mov byte [eax], 0x4e
cmp dword [0x4eab48], 0
je 0x4494ee
mov edx, dword [0x4eab48]
mov ecx, dword [edx + 0x308]
cmp ecx, dword [0x4e9ea8]
ja 0x4494ee
cmp dword [0x4eab74], 0
je 0x4493c1
mov eax, dword [0x4eab74]
cmp eax, dword [0x4e9ea8]
jbe 0x4493c1
mov edx, dword [0x4e9ea8]
mov eax, dword [ebp + 8]
mov dword [0x4eab5c], edx
mov dword [0x4eab58], edx
mov byte [eax], 0x2e
jmp 0x4494ee
mov ecx, dword [0x4eab48]
mov eax, dword [ecx + 0x308]
cmp eax, dword [0x4eab58]
jbe 0x449415
mov edx, dword [0x4eab48]
push 0x4eab5c
mov eax, dword [esi + 0x379]
mov ecx, dword [edx + 0x308]
sub ecx, dword [esi + 0x375]
mov edx, dword [0x4eab48]
sub eax, ecx
push eax
mov eax, dword [0x4e9ea8]
mov ecx, dword [edx + 0x308]
push ecx
push eax
call fcn.0044650c
add esp, 0x10
mov dword [0x4eab58], eax
mov edx, dword [0x4eab5c]
cmp edx, dword [0x4e9ea8]
jne 0x449437
mov ecx, dword [0x4eab5c]
cmp ecx, dword [0x4eab58]
je 0x449437
mov eax, dword [ebp + 8]
mov byte [eax], 0x45
mov edx, dword [0x4eab5c]
cmp edx, dword [0x4e9ea8]
ja 0x449499
push 0x4eab5c
mov ecx, dword [0x4eab5c]
sub ecx, dword [esi + 0x375]
mov eax, dword [esi + 0x379]
sub eax, ecx
push eax
mov edx, dword [0x4eab5c]
push edx
mov ecx, dword [0x4e9ea8]
push ecx
call fcn.0044650c
add esp, 0x10
mov dword [0x4eab58], eax
mov eax, dword [0x4eab48]
mov edx, dword [eax + 0x308]
cmp edx, dword [0x4eab58]
jbe 0x449499
mov ecx, dword [0x4eab5c]
mov dword [0x4eab58], ecx
mov eax, dword [0x4eab58]
cmp eax, dword [0x4e9ea8]
jne 0x4494cc
mov edx, dword [0x4eab58]
cmp edx, dword [0x4eab5c]
je 0x4494cc
mov cl, 0x54
mov eax, dword [ebp + 8]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x45
je 0x4494c5
add ecx, 0xffffffee
mov eax, dword [ebp + 8]
mov byte [eax], cl
jmp 0x4494ee
mov edx, dword [0x4e9ea8]
cmp edx, dword [0x4eab58]
jbe 0x4494ee
mov ecx, dword [0x4e9ea8]
cmp ecx, dword [0x4eab5c]
jae 0x4494ee
mov eax, dword [ebp + 8]
mov byte [eax], 0x49
mov edx, 1
mov dword [ebp - 0xc], edx
mov edi, edx
mov eax, dword [0x4e9ea0]
add eax, dword [0x4e9ea4]
cmp eax, dword [0x4e9ea8]
ja 0x449529
mov edx, dword [ebp + 8]
mov byte [edx + edi], 0
lea ecx, [edi + 1]
push ecx
push 0
mov eax, dword [ebp + 0xc]
push eax
call fcn.004a35a0
add esp, 0xc
jmp 0x4495c8
mov edx, dword [0x4e9ea8]
mov ecx, dword [0x4e9ea0]
add ecx, dword [0x4e9ea4]
add edx, dword [ebp - 0x20]
cmp edx, ecx
jbe 0x44956b
push str.________
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.004a6c2c
add esp, 8
add edi, eax
lea edx, [edi + 1]
push edx
push 1
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.004a35a0
add esp, 0xc
jmp 0x4495c8
mov eax, dword [0x4ea818]
mov edx, dword [eax]
push edx
push 0x4ba0fb
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
call fcn.004a6c2c
add esp, 0xc
add edi, eax
cmp dword [0x4ea814], 0
je 0x4495b6
mov eax, dword [0x4ea818]
mov ecx, dword [0x4ea814]
mov edx, dword [eax]
cmp edx, dword [ecx]
je 0x4495b6
lea eax, [edi + 1]
push eax
push 2
mov edx, dword [ebp + 0xc]
push edx
call fcn.004a35a0
add esp, 0xc
jmp 0x4495c8
lea ecx, [edi + 1]
push ecx
push 0
mov eax, dword [ebp + 0xc]
push eax
call fcn.004a35a0
add esp, 0xc
cmp dword [0x4eab48], 0
je 0x44961a
mov edx, dword [0x4eab48]
mov ecx, dword [edx + 0x308]
cmp ecx, dword [0x4e9ea8]
jbe 0x44961a
mov eax, dword [0x4eab48]
mov edx, dword [eax + 0x308]
cmp edx, dword [esi + 0x375]
jb 0x44961a
mov ecx, dword [0x4eab48]
mov edx, dword [esi + 0x375]
add edx, dword [esi + 0x379]
mov eax, dword [ecx + 0x308]
cmp eax, edx
jae 0x44961a
mov ecx, dword [ebp + 0x10]
or dword [ecx], 1
mov eax, dword [ebp + 0x10]
or dword [eax], 0x80
cmp dword [esi + 0x265], 0
je 0x449632
mov edx, dword [ebp + 0xc]
mov byte [edx], 0x40
cmp dword [0x4eab50], 0
je 0x449c97
cmp dword [0x4e2750], 0
je 0x449c97
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0xc]
xor ebx, ebx
lea ecx, [eax + edx]
mov dword [ebp - 0x54], ecx
jmp 0x449663
add dword [0x4eab50], 8
mov eax, dword [0x4eab50]
cmp dword [eax], 0
je 0x449689
mov edx, dword [0x4eab50]
mov eax, dword [0x4eab50]
mov ecx, dword [edx]
mov edx, dword [0x4e9ea8]
add ecx, dword [eax + 4]
add edx, ebx
cmp ecx, edx
jbe 0x44965c
mov ecx, dword [0x4eab50]
mov edx, dword [0x4e9ea8]
add edx, ebx
mov eax, dword [ecx]
cmp eax, edx
ja 0x4496f5
mov ecx, dword [0x4eab50]
mov edx, dword [0x4eab50]
mov eax, dword [ecx]
mov ecx, dword [0x4e9ea8]
add eax, dword [edx + 4]
add ecx, ebx
cmp eax, ecx
jbe 0x4496f5
mov edx, dword [esi + 0x375]
mov eax, dword [0x4e9ea8]
add edx, dword [esi + 0x379]
add eax, ebx
cmp eax, edx
jae 0x4496f5
mov ecx, ebx
add ecx, ecx
mov eax, 6
sub eax, ecx
mov edx, dword [ebp - 0x54]
or byte [edx + eax], 4
mov ecx, ebx
add ecx, ecx
mov eax, 7
sub eax, ecx
mov edx, dword [ebp - 0x54]
or byte [edx + eax], 4
inc ebx
cmp ebx, 4
jl 0x449663
jmp 0x449c97
cmp dword [ebp - 0x18], 0x8000
jne 0x449713
cmp dword [ebp + 0x18], 2
je 0x449733
cmp dword [ebp - 0x18], 0xb000
je 0x449729
cmp dword [ebp - 0x18], 0xc000
jne 0x449c97
cmp dword [ebp + 0x18], 3
jne 0x449c97
mov byte [ebp - 0x170], 0
xor edi, edi
mov eax, dword [0x4eab78]
mov dword [ebp - 0x3c], eax
xor edx, edx
mov dword [ebp - 4], edx
cmp dword [ebp - 0x3c], 0xffffffff
je 0x4497a8
mov ecx, dword [0x4e9ea8]
cmp ecx, dword [ebp - 0x3c]
je 0x4497a8
mov eax, dword [ebp - 0x3c]
add eax, 4
cmp eax, dword [0x4e9ea8]
je 0x4497a8
mov edx, dword [0x4e9ea0]
add edx, dword [0x4e9ea4]
cmp edx, dword [0x4e9ea8]
jb 0x4497a8
push 3
push 4
mov ecx, dword [ebp - 0x3c]
push ecx
lea eax, [ebp - 0x3c]
push eax
call sym.ollydbg.exe__Readmemory
add esp, 0x10
cmp eax, 4
je 0x44979c
mov dword [ebp - 0x3c], 0xffffffff
inc dword [ebp - 4]
cmp dword [ebp - 4], 0x200
jl 0x449749
cmp dword [ebp - 4], 0x200
jl 0x4497bc
push str.Too_long__recursive___SEH_chain
call sym.ollydbg.exe__Flash
pop ecx
cmp dword [0x4eab54], 0
je 0x44998e
mov edx, dword [0x4e9ea8]
cmp edx, dword [esi + 0x375]
jne 0x4497f4
mov ecx, dword [ebp + 8]
push esi
mov esi, str._Pointer_to_SEH_chain_
mov edi, ecx
mov eax, edi
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop esi
jmp 0x44997d
mov edx, dword [esi + 0x375]
add edx, 4
cmp edx, dword [0x4e9ea8]
jne 0x44981f
mov ecx, dword [ebp + 8]
push esi
mov esi, str._Top_of_threads_stack_
mov edi, ecx
mov eax, edi
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop esi
jmp 0x44997d
mov edx, dword [esi + 0x375]
add edx, 8
cmp edx, dword [0x4e9ea8]
jne 0x44984d
mov ecx, dword [ebp + 8]
push esi
mov esi, str._Bottom_of_threads_stack_
mov edi, ecx
mov eax, edi
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop esi
jmp 0x44997d
cmp dword [0x4d36d8], 2
jne 0x44987d
mov edx, dword [esi + 0x375]
add edx, 0x24
cmp edx, dword [0x4e9ea8]
jne 0x44987d
mov ecx, dword [ebp + 8]
push esi
mov esi, str._Thread_ID_
mov edi, ecx
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
jmp 0x44997d
mov edx, dword [esi + 0x375]
add edx, 0x2c
cmp edx, dword [0x4e9ea8]
jne 0x4498aa
mov ecx, dword [ebp + 8]
push esi
mov esi, str._Pointer_to_Thread_Local_Storage_
mov edi, ecx
mov eax, edi
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
jmp 0x44997d
cmp dword [0x4d36d8], 2
jne 0x449912
mov edx, dword [esi + 0x375]
add edx, 0x34
cmp edx, dword [0x4e9ea8]
jne 0x449912
mov ecx, dword [0x4ea818]
mov eax, dword [ecx]
push eax
push 2
call fcn.0040f1e4
add esp, 8
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0
jne 0x4498fb
mov edx, dword [ebp + 8]
push esi
mov esi, str._Last_error_
mov edi, edx
mov eax, edi
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop esi
jmp 0x44997d
mov edx, dword [ebp - 0x44]
push edx
push str._Last_error___s_
mov ecx, dword [ebp + 8]
push ecx
call fcn.004a6c2c
add esp, 0xc
jmp 0x44997d
cmp dword [0x4d36d8], 1
jne 0x449977
mov eax, dword [esi + 0x375]
add eax, 0x60
cmp eax, dword [0x4e9ea8]
jne 0x449977
mov edx, dword [0x4ea818]
mov ecx, dword [edx]
push ecx
push 2
call fcn.0040f1e4
add esp, 8
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0
jne 0x449960
mov eax, dword [ebp + 8]
push esi
mov esi, str._Last_error_
mov edi, eax
mov eax, edi
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop esi
jmp 0x44997d
mov edx, dword [ebp - 0x44]
push edx
push str._Last_error___s_
mov ecx, dword [ebp + 8]
push ecx
call fcn.004a6c2c
add esp, 0xc
jmp 0x44997d
mov eax, dword [ebp + 8]
mov byte [eax], 0
mov edx, dword [ebp + 8]
push edx
call fcn.004a36d4
pop ecx
mov edi, eax
jmp 0x449c0d
mov eax, dword [0x4e9ea8]
cmp eax, dword [ebp - 0x3c]
jne 0x4499d3
mov edx, dword [0x4ea818]
cmp dword [edx], 0xffffffff
jne 0x4499bb
push str.End_of_SEH_chain
mov ecx, dword [ebp + 8]
push ecx
call fcn.004a6c2c
add esp, 8
mov edi, eax
jmp 0x449c0d
push str.Pointer_to_next_SEH_record
mov eax, dword [ebp + 8]
push eax
call fcn.004a6c2c
add esp, 8
mov edi, eax
jmp 0x449c0d
mov eax, dword [ebp - 0x3c]
add eax, 4
cmp eax, dword [0x4e9ea8]
jne 0x4499f9
push 0x4ba228
mov edx, dword [ebp + 8]
push edx
call fcn.004a6c2c
add esp, 8
mov edi, eax
jmp 0x449c0d
cmp dword [0x4eab48], 0
je 0x449c0d
mov eax, dword [0x4eab48]
mov edx, dword [eax + 0x308]
cmp edx, dword [esi + 0x375]
jb 0x449c0d
mov ecx, dword [0x4eab48]
mov edx, dword [esi + 0x375]
add edx, dword [esi + 0x379]
mov eax, dword [ecx + 0x308]
add eax, dword [ebp - 0x20]
cmp eax, edx
ja 0x449c0d
mov ecx, dword [0x4eab48]
mov eax, dword [ecx + 0x308]
cmp eax, dword [0x4e9ea8]
ja 0x449c0d
mov edx, dword [0x4e9ea8]
mov ecx, dword [0x4e9ea0]
add ecx, dword [0x4e9ea4]
add edx, dword [ebp - 0x20]
cmp edx, ecx
ja 0x449c0d
mov eax, dword [0x4eab48]
mov edx, dword [0x4e9ea8]
sub edx, dword [eax + 0x308]
shr edx, 2
mov dword [ebp - 0xc], edx
push 0
mov ecx, dword [ebp + 0xc]
inc ecx
push ecx
mov eax, dword [ebp + 8]
inc eax
push eax
mov edx, dword [ebp - 0xc]
push edx
push 0x4ea824
call fcn.0040e388
add esp, 0x14
mov edi, eax
test edi, edi
jle 0x449b0e
inc edi
mov eax, dword [ebp + 0x10]
or dword [eax], 0x80
cmp dword [ebp - 0xc], 0
jne 0x449ad0
cmp dword [0x4ea92c], 0
je 0x449ad0
mov edx, dword [ebp + 8]
mov byte [edx], 0x42
jmp 0x449b08
push 1
lea ecx, [ebp - 0x370]
push 0
push ecx
mov eax, dword [ebp - 0xc]
inc eax
push eax
push 0x4ea824
call fcn.0040e388
add esp, 0x14
test eax, eax
jne 0x449b02
cmp dword [0x4eab44], 0
jne 0x449b02
mov edx, dword [ebp + 8]
mov byte [edx], 0x45
jmp 0x449b08
mov ecx, dword [ebp + 8]
mov byte [ecx], 0x49
mov eax, dword [ebp + 0xc]
mov byte [eax], 0x40
test edi, edi
jne 0x449c0d
cmp dword [0x4eab74], 0
je 0x449b31
mov edx, dword [0x4eab74]
cmp edx, dword [0x4e9ea8]
ja 0x449c0d
mov eax, dword [0x4ea818]
lea ecx, [ebp - 0x30]
push ecx
mov edx, dword [eax]
push edx
call sym.ollydbg.exe__Isretaddr
add esp, 8
test eax, eax
je 0x449c0d
push str.RETURN_to
mov ecx, dword [ebp + 8]
push ecx
call fcn.004a6c2c
mov edi, eax
add esp, 8
mov eax, 0x100
mov ecx, dword [0x4ea818]
sub eax, edi
push eax
mov edx, dword [ebp + 8]
add edx, edi
push edx
push 0
mov eax, dword [ecx]
push eax
call sym.ollydbg.exe__Decoderelativeoffset
add esp, 0x10
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jle 0x449b8f
add edi, dword [ebp - 0xc]
jmp 0x449bb5
mov edx, 0x100
push 0
sub edx, edi
mov eax, dword [0x4ea818]
push edx
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
push 0x40
push 0
mov edx, dword [eax]
push edx
call sym.ollydbg.exe__Decodeaddress
add esp, 0x18
add edi, eax
cmp dword [ebp - 0x30], 0
je 0x449bfe
mov ecx, 0x100
sub ecx, edi
cmp ecx, 0x20
jle 0x449bfe
push str._from
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.004a6c2c
add esp, 8
add edi, eax
mov edx, 0x100
sub edx, edi
push 0
push edx
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
push 0x40
push 0
mov eax, dword [ebp - 0x30]
push eax
call sym.ollydbg.exe__Decodeaddress
add esp, 0x18
add edi, eax
cmp dword [0x4e2748], 0
je 0x449c0d
mov edx, dword [ebp + 0x10]
or dword [edx], 2
test edi, edi
jne 0x449c75
mov eax, dword [0x4e9ea0]
mov ecx, dword [0x4e9ea8]
add eax, dword [0x4e9ea4]
add ecx, 4
cmp ecx, eax
ja 0x449c75
lea edx, [ebp - 0x170]
mov eax, dword [0x4ea818]
push edx
push 0x100
mov ecx, dword [ebp + 8]
push ecx
push 0x3cc
push 0
mov edx, dword [eax]
push edx
call sym.ollydbg.exe__Decodeaddress
add esp, 0x18
mov edi, eax
cmp byte [ebp - 0x170], 0
je 0x449c75
lea eax, [ebp - 0x170]
push eax
push 0x4ba102
mov edx, dword [ebp + 8]
push edx
call fcn.004a6c2c
add esp, 0xc
mov edi, eax
cmp dword [0x4eab48], 0
je 0x449c97
mov eax, dword [0x4eab48]
mov edx, dword [eax + 0x308]
cmp edx, dword [0x4e9ea8]
jbe 0x449c97
mov ecx, dword [ebp + 0x10]
or dword [ecx], 1
cmp dword [ebp + 0x18], 1
jne 0x44ae34
cmp dword [0x4ea814], 0
je 0x44ae34
xor ebx, ebx
jmp 0x449ccc
mov eax, dword [0x4ea814]
mov ecx, dword [0x4ea818]
mov dl, byte [eax + ebx]
cmp dl, byte [ecx + ebx]
je 0x449ccb
mov eax, dword [ebp + 0x10]
or dword [eax], 2
inc ebx
cmp ebx, dword [ebp - 0x20]
jge 0x44ae34
mov ecx, dword [0x4e9ea0]
mov edx, dword [0x4e9ea8]
add ecx, dword [0x4e9ea4]
add edx, ebx
cmp edx, ecx
jb 0x449cb2
jmp 0x44ae34
cmp dword [ebp - 0x18], 0x9000
je 0x449d12
cmp dword [ebp - 0x18], 0xd000
jne 0x44ad2f
cmp dword [ebp + 0x18], 1
jne 0x44ad2f
push 0x100
push 0
mov eax, dword [ebp + 0xc]
push eax
call fcn.004a35a0
add esp, 0xc
mov edx, dword [0x4ea810]
cmp edx, dword [esi + 0x385]
jbe 0x449d4c
mov ecx, dword [0x4e9ea8]
cmp ecx, dword [esi + 0x389]
jae 0x449d4c
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x88
jmp 0x449d55
mov edx, dword [ebp + 0x10]
mov dword [edx], 0x80
cmp dword [ebp + 0x18], 1
jne 0x44a49b
cmp dword [0x4ea81c], 0
je 0x449e8b
mov ecx, dword [0x4e9ea0]
add ecx, dword [0x4e9ea4]
cmp ecx, dword [0x4e9ea8]
jbe 0x449e8b
mov eax, dword [0x4e9ea8]
sub eax, dword [0x4e9ea0]
mov edx, dword [0x4ea81c]
xor ebx, ebx
mov bl, byte [edx + eax]
mov eax, ebx
and eax, 0x60
cmp eax, 0x20
jne 0x449dac
mov edx, dword [ebp + 8]
mov byte [edx], 0x42
jmp 0x449dd6
mov ecx, ebx
and ecx, 0x60
cmp ecx, 0x40
jne 0x449dbe
mov eax, dword [ebp + 8]
mov byte [eax], 0x49
jmp 0x449dd6
mov edx, ebx
and edx, 0x60
cmp edx, 0x60
jne 0x449dd0
mov ecx, dword [ebp + 8]
mov byte [ecx], 0x45
jmp 0x449dd6
mov eax, dword [ebp + 8]
mov byte [eax], 0x4e
mov edx, ebx
and edx, 0x1f
cmp edx, 0x1f
jne 0x449de9
mov ecx, dword [ebp + 8]
mov byte [ecx + 1], 0x24
jmp 0x449e37
mov eax, ebx
and eax, 0x1f
cmp eax, 0x1e
jne 0x449dfc
mov edx, dword [ebp + 8]
mov byte [edx + 1], 0x3e
jmp 0x449e37
mov ecx, ebx
and ecx, 0x1f
cmp ecx, 3
jne 0x449e0f
mov eax, dword [ebp + 8]
mov byte [eax + 1], 0x3f
jmp 0x449e37
mov edx, ebx
and edx, 0x1f
cmp edx, 0x13
jne 0x449e22
mov ecx, dword [ebp + 8]
mov byte [ecx + 1], 0x3f
jmp 0x449e37
test bl, 0x80
je 0x449e30
mov eax, dword [ebp + 8]
mov byte [eax + 1], 0x2e
jmp 0x449e37
mov edx, dword [ebp + 8]
mov byte [edx + 1], 0x20
mov ecx, dword [ebp + 0xc]
mov byte [ecx], 0x40
cmp dword [0x4ea820], 0
je 0x449e82
mov eax, dword [0x4e9ea8]
sub eax, dword [0x4e9ea0]
mov edx, dword [0x4ea820]
xor ebx, ebx
mov bl, byte [edx + eax]
and ebx, 0x81
cmp ebx, 0x80
jne 0x449e73
mov eax, dword [ebp + 0xc]
mov byte [eax + 1], 8
jmp 0x449e82
cmp ebx, 0x81
jne 0x449e82
mov edx, dword [ebp + 0xc]
mov byte [edx + 1], 0x20
mov dword [ebp - 0x10], 2
jmp 0x449e90
xor ecx, ecx
mov dword [ebp - 0x10], ecx
cmp dword [0x4d91ac], 0
je 0x449f42
mov eax, dword [0x4e9ea0]
add eax, dword [0x4e9ea4]
cmp eax, dword [0x4e9ea8]
jbe 0x449f42
mov edx, dword [0x4ea4e0]
cmp dword [0x4ea4b4], 0x50
mov dword [ebp - 0x2c], edx
je 0x449ecf
cmp dword [0x4ea4b4], 0x60
jne 0x449f2b
cmp dword [ebp - 0x2c], 0
je 0x449f2b
mov ecx, dword [esi + 0x375]
cmp ecx, dword [ebp - 0x2c]
ja 0x449efc
mov eax, dword [esi + 0x375]
add eax, dword [esi + 0x379]
cmp eax, dword [ebp - 0x2c]
jbe 0x449efc
mov edx, dword [ebp - 0x2c]
cmp edx, dword [0x4e9ea8]
jne 0x449f08
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x10]
mov byte [ecx + eax], 0x3c
jmp 0x449f35
mov edx, dword [ebp - 0x2c]
cmp edx, dword [0x4e9ea8]
jae 0x449f1f
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x10]
mov byte [ecx + eax], 0x55
jmp 0x449f35
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
mov byte [edx + ecx], 0x44
jmp 0x449f35
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov byte [eax + edx], 0x4e
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x10]
mov byte [ecx + eax], 0x40
inc dword [ebp - 0x10]
cmp dword [0x4d91b0], 0
je 0x44a2aa
mov edx, dword [0x4e9ea0]
add edx, dword [0x4e9ea4]
cmp edx, dword [0x4e9ea8]
jbe 0x44a2aa
cmp dword [0x4eab6c], 2
jne 0x44a193
cmp dword [0x4eab4c], 0
je 0x44a193
mov ecx, dword [0x4e9ea8]
cmp ecx, dword [0x4eab60]
jb 0x44a193
mov eax, dword [0x4e9ea8]
cmp eax, dword [0x4eab64]
ja 0x44a193
mov edx, dword [0x4e9ea8]
cmp edx, dword [0x4eab60]
jne 0x449fcf
mov ecx, dword [0x4e9ea8]
cmp ecx, dword [0x4eab68]
je 0x449fcf
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov byte [eax + edx], 0x64
jmp 0x44a29d
mov ecx, dword [0x4e9ea8]
cmp ecx, dword [0x4eab64]
jne 0x449ff9
mov eax, dword [0x4e9ea8]
cmp eax, dword [0x4eab68]
je 0x449ff9
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
mov byte [edx + ecx], 0x75
jmp 0x44a29d
mov eax, dword [0x4e9ea8]
cmp eax, dword [0x4eab60]
jne 0x44a023
mov edx, dword [0x4e9ea8]
cmp edx, dword [0x4eab68]
jne 0x44a023
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x10]
mov byte [ecx + eax], 0x72
jmp 0x44a29d
mov edx, dword [0x4e9ea8]
cmp edx, dword [0x4eab64]
jne 0x44a04e
mov ecx, dword [0x4e9ea8]
cmp ecx, dword [0x4eab68]
jne 0x44a04e
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov byte [eax + edx], 0x66
jmp 0x44a29d
mov ecx, dword [0x4e9ea8]
cmp ecx, dword [0x4eab68]
jne 0x44a06b
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov byte [eax + edx], 0x7a
jmp 0x44a29d
mov ecx, dword [0x4ea4b4]
and ecx, 0xf0
cmp ecx, 0x50
je 0x44a08f
mov eax, dword [0x4ea4b4]
and eax, 0xf0
cmp eax, 0x60
jne 0x44a184
mov edx, dword [0x4eab4c]
mov ecx, dword [0x4eab68]
sub ecx, dword [edx + 0xc]
push ecx
mov eax, dword [0x4eab4c]
push eax
call fcn.0047f200
add esp, 8
mov dword [ebp - 4], eax
test eax, eax
jl 0x44a184
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
mov byte [edx + ecx], 0x69
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
lea ecx, [eax + edx]
mov dword [ebp - 0x54], ecx
jmp 0x44a16a
mov eax, dword [ebp - 4]
mov edx, dword [0x4eab4c]
mov ecx, dword [edx + 0x421]
lea eax, [eax + eax*8]
mov edx, dword [0x4eab4c]
mov eax, dword [ecx + eax + 5]
mov ecx, dword [0x4eab68]
sub ecx, dword [edx + 0xc]
cmp eax, ecx
jne 0x44a29d
mov eax, dword [ebp - 4]
mov edx, dword [0x4eab4c]
mov ecx, dword [edx + 0x421]
lea eax, [eax + eax*8]
movzx eax, byte [ecx + eax]
cmp eax, 3
je 0x44a167
mov edx, dword [ebp - 4]
mov ecx, dword [0x4eab4c]
mov eax, dword [ecx + 0x421]
lea edx, [edx + edx*8]
mov ecx, dword [0x4eab4c]
mov edx, dword [eax + edx + 1]
mov eax, dword [0x4e9ea8]
sub eax, dword [ecx + 0xc]
cmp edx, eax
jne 0x44a167
mov edx, dword [0x4eab68]
cmp edx, dword [0x4e9ea8]
jae 0x44a15c
mov ecx, dword [ebp - 0x54]
mov byte [ecx], 0x61
jmp 0x44a29d
mov eax, dword [ebp - 0x54]
mov byte [eax], 0x68
jmp 0x44a29d
inc dword [ebp - 4]
mov edx, dword [0x4eab4c]
mov ecx, dword [edx + 0x425]
cmp ecx, dword [ebp - 4]
jg 0x44a0d3
jmp 0x44a29d
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov byte [eax + edx], 0x69
jmp 0x44a29d
mov ecx, dword [0x4eab60]
cmp ecx, dword [0x4e9ea8]
ja 0x44a218
mov eax, dword [0x4e9ea8]
cmp eax, dword [0x4eab64]
ja 0x44a218
mov edx, dword [0x4eab60]
cmp edx, dword [0x4e9ea8]
jne 0x44a1d6
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x10]
mov dl, 0x64
cmp dword [0x4eab6c], 0
jne 0x44a1ce
inc edx
mov byte [ecx + eax], dl
jmp 0x44a29d
mov ecx, dword [0x4e9ea8]
cmp ecx, dword [0x4eab64]
jne 0x44a1fe
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov cl, 0x66
cmp dword [0x4eab6c], 0
jne 0x44a1f6
inc ecx
mov byte [eax + edx], cl
jmp 0x44a29d
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov cl, 0x69
cmp dword [0x4eab6c], 0
jne 0x44a210
inc ecx
mov byte [eax + edx], cl
jmp 0x44a29d
mov eax, dword [0x4e9ea8]
cmp eax, dword [0x4eab64]
jb 0x44a293
mov edx, dword [0x4e9ea8]
cmp edx, dword [0x4eab60]
ja 0x44a293
mov ecx, dword [0x4e9ea8]
cmp ecx, dword [0x4eab60]
jne 0x44a258
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov cl, 0x75
cmp dword [0x4eab6c], 0
jne 0x44a253
inc ecx
mov byte [eax + edx], cl
jmp 0x44a29d
mov eax, dword [0x4e9ea8]
cmp eax, dword [0x4eab64]
jne 0x44a27c
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
mov al, 0x72
cmp dword [0x4eab6c], 0
jne 0x44a277
inc eax
mov byte [edx + ecx], al
jmp 0x44a29d
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
mov al, 0x69
cmp dword [0x4eab6c], 0
jne 0x44a28e
inc eax
mov byte [edx + ecx], al
jmp 0x44a29d
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
mov byte [edx + ecx], 0x4e
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x10]
mov byte [eax + edx], 0x40
inc dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
xor eax, eax
add ecx, dword [ebp - 0x10]
push esi
mov esi, ecx
or ecx, 0xffffffff
mov edi, 0x4e9eb4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
mov eax, dword [ebp + 8]
push eax
call fcn.004a36d4
pop ecx
mov edi, eax
cmp dword [0x4ea814], 0
je 0x44a39c
mov eax, dword [0x4ea810]
cmp eax, dword [0x4e9ea8]
jbe 0x44a39c
mov edx, dword [0x4ea810]
mov ecx, dword [0x4ea818]
sub edx, dword [0x4e9ea8]
mov eax, dword [0x4ea814]
push edx
push ecx
push eax
call fcn.004a37d4
add esp, 0xc
test eax, eax
je 0x44a39c
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0xc], edx
xor ebx, ebx
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0xc]
lea ecx, [eax + edx + 1]
mov dword [ebp - 0x58], ecx
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0xc]
lea ecx, [eax + edx]
mov dword [ebp - 0x54], ecx
cmp edi, dword [ebp - 0xc]
jle 0x44a39c
mov eax, dword [ebp - 0x54]
xor edx, edx
mov dl, byte [eax]
push edx
call fcn.004a7c50
pop ecx
test eax, eax
jne 0x44a369
inc dword [ebp - 0xc]
inc dword [ebp - 0x58]
inc dword [ebp - 0x54]
jmp 0x44a397
mov ecx, dword [0x4ea814]
mov edx, dword [0x4ea818]
mov al, byte [ecx + ebx]
cmp al, byte [edx + ebx]
je 0x44a38a
mov ecx, dword [ebp - 0x58]
mov al, 2
mov byte [ecx], al
mov edx, dword [ebp - 0x58]
mov byte [edx - 1], al
inc ebx
add dword [ebp - 0xc], 2
add dword [ebp - 0x58], 2
add dword [ebp - 0x54], 2
cmp edi, dword [ebp - 0xc]
jg 0x44a34c
cmp dword [0x4eab50], 0
je 0x44ae34
cmp dword [0x4e2750], 0
je 0x44ae34
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0xc], ecx
xor ebx, ebx
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0xc]
lea ecx, [eax + edx]
mov dword [ebp - 0x54], ecx
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0xc]
lea ecx, [eax + edx]
mov dword [ebp - 0x58], ecx
cmp edi, dword [ebp - 0xc]
jle 0x44ae34
mov eax, dword [ebp - 0x58]
xor edx, edx
mov dl, byte [eax]
push edx
call fcn.004a7c50
pop ecx
test eax, eax
jne 0x44a406
inc dword [ebp - 0xc]
inc dword [ebp - 0x54]
inc dword [ebp - 0x58]
jmp 0x44a48d
add dword [0x4eab50], 8
mov ecx, dword [0x4eab50]
cmp dword [ecx], 0
je 0x44a42c
mov eax, dword [0x4eab50]
mov ecx, dword [0x4eab50]
mov edx, dword [eax]
mov eax, dword [0x4e9ea8]
add edx, dword [ecx + 4]
add eax, ebx
cmp edx, eax
jbe 0x44a3ff
mov edx, dword [0x4eab50]
mov eax, dword [0x4e9ea8]
add eax, ebx
mov ecx, dword [edx]
cmp ecx, eax
ja 0x44a480
mov edx, dword [0x4eab50]
mov eax, dword [0x4eab50]
mov ecx, dword [edx]
mov edx, dword [0x4e9ea8]
add ecx, dword [eax + 4]
add edx, ebx
cmp ecx, edx
jbe 0x44a480
mov eax, dword [esi + 0x375]
mov ecx, dword [0x4e9ea8]
add eax, dword [esi + 0x379]
add ecx, ebx
cmp ecx, eax
jae 0x44a480
mov edx, dword [ebp - 0x54]
or byte [edx], 4
mov ecx, dword [ebp - 0x54]
or byte [ecx + 1], 4
inc ebx
add dword [ebp - 0xc], 2
add dword [ebp - 0x54], 2
add dword [ebp - 0x58], 2
cmp edi, dword [ebp - 0xc]
jg 0x44a3df
jmp 0x44ae34
cmp dword [ebp + 0x18], 2
jne 0x44a765
cmp dword [esi + 0x3a1], 0
jne 0x44a4fc
test byte [esi + 0x257], 1
jne 0x44a4fc
cmp dword [0x4d9210], 0
je 0x44a4fc
mov eax, dword [ebp + 8]
mov edx, dword [0x4e9ea8]
push eax
push 0x3e
push edx
call sym.ollydbg.exe__Findname
mov edi, eax
xor eax, eax
mov dword [ebp - 0xc], eax
add esp, 0xc
mov edx, dword [ebp + 0xc]
mov ecx, edx
mov dword [ebp - 0x54], ecx
cmp edi, dword [ebp - 0xc]
jle 0x44a4fe
mov eax, dword [ebp - 0x54]
or byte [eax], 0x40
inc dword [ebp - 0xc]
inc dword [ebp - 0x54]
cmp edi, dword [ebp - 0xc]
jg 0x44a4e9
jmp 0x44a4fe
xor edi, edi
push 0x4e9fb4
call fcn.004a36d4
pop ecx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
add eax, edi
cmp eax, 0xff
jle 0x44a522
mov edx, 0xff
sub edx, edi
mov dword [ebp - 0xc], edx
mov ecx, dword [ebp - 0xc]
push ecx
push 0x4e9fb4
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.004a3530
add esp, 0xc
cmp dword [0x4eab70], 0
jle 0x44a692
cmp dword [0x4ea814], 0
je 0x44a5cd
mov edx, dword [0x4ea810]
cmp edx, dword [0x4e9ea8]
jbe 0x44a5cd
mov ecx, dword [0x4ea810]
mov eax, dword [0x4ea818]
sub ecx, dword [0x4e9ea8]
mov edx, dword [0x4ea814]
push ecx
push eax
push edx
call fcn.004a37d4
add esp, 0xc
test eax, eax
je 0x44a5cd
mov ebx, edi
mov eax, dword [ebp + 0xc]
lea edx, [eax + ebx]
mov dword [ebp - 0x54], edx
jmp 0x44a5b3
mov ecx, dword [0x4eab70]
inc ebx
mov eax, ecx
shl ecx, 3
sub ecx, eax
lea ecx, [eax + ecx*4]
mov dl, byte [ecx*4 + 0x4d9494]
mov ecx, dword [ebp - 0x54]
or dl, 0x80
mov byte [ecx], dl
inc dword [ebp - 0x54]
mov eax, dword [ebp - 0xc]
add eax, edi
cmp ebx, eax
jg 0x44a75d
cmp ebx, 0x100
jl 0x44a590
jmp 0x44a75d
cmp dword [0x4ea81c], 0
je 0x44a654
cmp dword [0x4d91a8], 0
je 0x44a654
mov edx, dword [0x4e9ea0]
add edx, dword [0x4e9ea4]
cmp edx, dword [0x4e9ea8]
jbe 0x44a654
mov ecx, dword [0x4e9ea8]
sub ecx, dword [0x4e9ea0]
mov eax, dword [0x4ea81c]
test byte [eax + ecx], 0x80
jne 0x44a654
mov ebx, edi
mov eax, dword [ebp + 0xc]
lea edx, [eax + ebx]
mov dword [ebp - 0x54], edx
jmp 0x44a63a
mov ecx, dword [0x4eab70]
inc ebx
mov eax, ecx
shl ecx, 3
sub ecx, eax
lea ecx, [eax + ecx*4]
mov dl, byte [ecx*4 + 0x4d9490]
mov ecx, dword [ebp - 0x54]
or dl, 0x80
mov byte [ecx], dl
inc dword [ebp - 0x54]
mov eax, dword [ebp - 0xc]
add eax, edi
cmp ebx, eax
jg 0x44a75d
cmp ebx, 0x100
jl 0x44a617
jmp 0x44a75d
xor ebx, ebx
mov eax, dword [ebp + 0xc]
lea edx, [eax + edi]
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x54], 0x4ea710
jmp 0x44a679
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x58]
inc ebx
mov al, byte [ecx]
mov byte [edx], al
inc dword [ebp - 0x58]
inc dword [ebp - 0x54]
cmp ebx, dword [ebp - 0xc]
jg 0x44a75d
lea ecx, [edi + ebx]
cmp ecx, 0x100
jl 0x44a668
jmp 0x44a75d
cmp dword [0x4ea814], 0
je 0x44a6f8
mov eax, dword [0x4ea810]
cmp eax, dword [0x4e9ea8]
jbe 0x44a6f8
mov edx, dword [0x4ea810]
mov ecx, dword [0x4ea818]
sub edx, dword [0x4e9ea8]
mov eax, dword [0x4ea814]
push edx
push ecx
push eax
call fcn.004a37d4
add esp, 0xc
test eax, eax
je 0x44a6f8
mov ebx, edi
mov eax, dword [ebp + 0xc]
lea edx, [eax + ebx]
mov dword [ebp - 0x58], edx
jmp 0x44a6e5
mov ecx, dword [ebp - 0x58]
mov byte [ecx], 2
inc ebx
inc dword [ebp - 0x58]
mov eax, dword [ebp - 0xc]
add eax, edi
cmp ebx, eax
jg 0x44a75d
cmp ebx, 0x100
jl 0x44a6db
jmp 0x44a75d
cmp dword [0x4ea81c], 0
je 0x44a75d
cmp dword [0x4d91a8], 0
je 0x44a75d
mov edx, dword [0x4e9ea0]
add edx, dword [0x4e9ea4]
cmp edx, dword [0x4e9ea8]
jbe 0x44a75d
mov ecx, dword [0x4e9ea8]
sub ecx, dword [0x4e9ea0]
mov eax, dword [0x4ea81c]
test byte [eax + ecx], 0x80
jne 0x44a75d
mov ebx, edi
mov eax, dword [ebp + 0xc]
lea edx, [eax + ebx]
mov dword [ebp - 0x58], edx
jmp 0x44a74c
mov ecx, dword [ebp - 0x58]
or byte [ecx], 1
inc ebx
inc dword [ebp - 0x58]
mov eax, dword [ebp - 0xc]
add eax, edi
cmp ebx, eax
jg 0x44a75d
cmp ebx, 0x100
jl 0x44a742
add edi, dword [ebp - 0xc]
jmp 0x44ae34
cmp dword [ebp + 0x18], 3
jne 0x44ad1f
cmp dword [esi + 0x3a1], 0
jne 0x44ad1f
mov eax, dword [0x4e9ea8]
sub eax, dword [0x4e9ea0]
inc eax
jmp 0x44a7c6
cmp dword [esi + 0x26d], 2
jne 0x44a7b0
cmp dword [0x4b9f90], 0
je 0x44a7b0
cmp eax, dword [0x4b9f94]
jae 0x44a7b0
mov edx, dword [0x4b9f90]
cmp dword [edx + eax*4], 0
jne 0x44a7d6
cmp dword [0x4ea820], 0
je 0x44a7c5
mov ecx, dword [0x4ea820]
test byte [ecx + eax], 1
jne 0x44a7d6
inc eax
mov edx, dword [0x4ea810]
sub edx, dword [0x4e9ea0]
cmp eax, edx
jb 0x44a78a
mov ecx, dword [0x4ea810]
sub ecx, dword [0x4e9ea0]
cmp eax, ecx
jae 0x44a80e
push str._ATTENTION__trace_hits_in_the_middle_of_the_command_
mov eax, dword [ebp + 8]
push eax
call fcn.004a6c2c
mov edi, eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x10]
add esp, 8
mov edx, dword [eax]
and edx, 8
or edx, 2
mov dword [ecx], edx
jmp 0x44ac9b
cmp dword [esi + 0x26d], 1
jne 0x44a86b
cmp dword [esi + 0x251], 0
je 0x44a86b
mov eax, dword [0x4e9ea8]
push eax
call sym.ollydbg.exe__Getlinefromaddress
pop ecx
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0
je 0x44ac9b
mov edx, dword [ebp - 0x4c]
mov ecx, dword [edx]
cmp ecx, dword [0x4e9ea8]
jne 0x44ac9b
mov eax, dword [ebp + 8]
push eax
mov edx, dword [ebp - 0x4c]
mov ecx, dword [edx + 0xc]
push ecx
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax + 8]
push edx
call fcn.004955fc
add esp, 0xc
mov edi, eax
jmp 0x44ac9b
cmp dword [esi + 0x26d], 2
jne 0x44a8ea
cmp dword [esi + 0x251], 0
je 0x44a8ea
cmp dword [0x4b9f90], 0
je 0x44ac9b
mov eax, dword [0x4e9ea0]
add eax, dword [0x4b9f94]
cmp eax, dword [0x4e9ea8]
jbe 0x44ac9b
mov edx, dword [0x4e9ea8]
sub edx, dword [0x4e9ea0]
mov ecx, dword [0x4b9f90]
cmp dword [ecx + edx*4], 0
jbe 0x44ac9b
mov eax, dword [0x4e9ea8]
sub eax, dword [0x4e9ea0]
mov edx, dword [0x4b9f90]
mov ecx, dword [edx + eax*4]
push ecx
push str.__li.
mov eax, dword [ebp + 8]
push eax
call fcn.004a6c2c
add esp, 0xc
mov edi, eax
jmp 0x44ac9b
xor eax, eax
cmp dword [0x4ea81c], 0
mov dword [ebp - 0x14], eax
je 0x44a9d8
cmp dword [0x4dcc4c], 0
je 0x44a9d8
cmp dword [esi + 0x251], 0
je 0x44a92d
lea edx, [ebp - 0x270]
mov ecx, dword [0x4e9ea8]
push edx
push 0x39
push ecx
call sym.ollydbg.exe__Findname
add esp, 0xc
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0xc]
mov byte [eax], 0x40
mov edi, 1
cmp dword [ebp - 0x14], 0
jne 0x44a949
mov eax, dword [ebp + 8]
mov byte [eax], 0x4e
jmp 0x44a9d8
mov edx, dword [ebp + 8]
mov cl, byte [ebp - 0x270]
mov byte [edx], cl
mov eax, dword [ebp + 0xc]
lea edx, [eax + edi]
mov dword [ebp - 0x60], edx
lea edx, [ebp + edi - 0x270]
mov ecx, dword [ebp + 8]
lea eax, [ecx + edi]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x58], edx
cmp edi, dword [ebp - 0x14]
jge 0x44a9d8
mov ecx, dword [ebp - 0x58]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x2f
jne 0x44a989
mov edx, dword [ebp - 0x54]
mov byte [edx], 0x42
jmp 0x44a9c3
mov ecx, dword [ebp - 0x58]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x7c
jne 0x44a99d
mov edx, dword [ebp - 0x54]
mov byte [edx], 0x49
jmp 0x44a9c3
mov ecx, dword [ebp - 0x58]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5c
jne 0x44a9b1
mov edx, dword [ebp - 0x54]
mov byte [edx], 0x45
jmp 0x44a9c3
mov ecx, dword [ebp - 0x58]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5b
jne 0x44a9d8
mov edx, dword [ebp - 0x54]
mov byte [edx], 0x53
mov ecx, dword [ebp - 0x60]
mov byte [ecx], 0x40
inc edi
inc dword [ebp - 0x60]
inc dword [ebp - 0x54]
inc dword [ebp - 0x58]
cmp edi, dword [ebp - 0x14]
jl 0x44a975
mov eax, dword [ebp + 8]
mov edx, dword [0x4e9ea8]
add eax, edi
push eax
push 0x36
push edx
call sym.ollydbg.exe__Findname
add esp, 0xc
mov ebx, eax
test ebx, ebx
jne 0x44aadb
cmp edi, dword [ebp - 0x14]
jge 0x44aadb
mov eax, dword [ebp + 8]
xor edx, edx
mov dl, byte [eax + edi - 1]
cmp edx, 0x45
je 0x44aa1e
mov ecx, dword [ebp + 8]
xor eax, eax
mov al, byte [ecx + edi - 1]
cmp eax, 0x53
jne 0x44aa65
mov ebx, dword [ebp - 0x14]
lea eax, [ebp - 0x270]
sub ebx, edi
add eax, edi
push ebx
push eax
mov edx, dword [ebp + 8]
add edx, edi
push edx
call fcn.004a3530
add esp, 0xc
xor ecx, ecx
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp + 0xc]
lea edx, [eax + edi]
mov dword [ebp - 0x60], edx
cmp ebx, dword [ebp - 0xc]
jle 0x44aadb
mov ecx, dword [ebp - 0x60]
or byte [ecx], 2
inc dword [ebp - 0xc]
inc dword [ebp - 0x60]
cmp ebx, dword [ebp - 0xc]
jg 0x44aa52
jmp 0x44aadb
mov eax, dword [0x4ea4b4]
and eax, 0xf0
cmp eax, 0x10
jne 0x44aaaa
push 0
mov eax, dword [0x4ea508]
mov edx, dword [ebp + 0xc]
add edx, edi
push edx
mov edx, dword [0x4ea520]
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
lea ecx, [ebp - 0x270]
push eax
push edx
add ecx, edi
mov eax, dword [0x4e9ea8]
push ecx
push eax
call sym.ollydbg.exe__Decodeknownargument
add esp, 0x1c
mov ebx, eax
jmp 0x44aadb
push 0
mov ecx, dword [0x4ea520]
mov eax, dword [ebp + 0xc]
add eax, edi
push eax
lea eax, [ebp - 0x270]
mov edx, dword [ebp + 8]
add edx, edi
add eax, edi
push edx
push 0
push ecx
push eax
mov edx, dword [0x4e9ea8]
push edx
call sym.ollydbg.exe__Decodeknownargument
add esp, 0x1c
mov ebx, eax
test ebx, ebx
jne 0x44ab51
lea eax, [ebp - 0x170]
mov edx, dword [0x4e9ea8]
push eax
push 0x3d
push edx
call sym.ollydbg.exe__Findname
add esp, 0xc
mov ebx, eax
test ebx, ebx
jle 0x44ab51
push str.Decoded_as
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.004a6c2c
add esp, 8
mov edx, dword [ebp + 8]
add edi, eax
xor eax, eax
push esi
push edi
add edx, edi
lea edi, [ebp - 0x170]
or ecx, 0xffffffff
mov esi, edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
push ebx
push 2
mov eax, dword [ebp + 0xc]
add eax, edi
push eax
call fcn.004a35a0
add esp, 0xc
test ebx, ebx
jne 0x44ab6e
mov edx, dword [ebp + 8]
mov ecx, dword [0x4e9ea8]
add edx, edi
push edx
push 0x37
push ecx
call sym.ollydbg.exe__Findname
add esp, 0xc
mov ebx, eax
test ebx, ebx
jne 0x44aba3
cmp dword [0x4eab4c], 0
je 0x44aba3
mov eax, dword [0x4eab4c]
mov edx, dword [eax + 0x3e1]
cmp edx, dword [0x4e9ea8]
jne 0x44aba3
push str.Real_entry_point_of_SFX_code
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
call fcn.004a6c2c
add esp, 8
mov ebx, eax
test ebx, ebx
jne 0x44abe2
mov eax, dword [ebp + 8]
push esi
add eax, edi
push edi
mov esi, eax
xor eax, eax
or ecx, 0xffffffff
mov edi, 0x4ea0b4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
mov eax, dword [ebp + 8]
add eax, edi
pop esi
push eax
call fcn.004a36d4
pop ecx
mov ebx, eax
lea eax, [ebp - 0x170]
mov edx, dword [0x4e9ea8]
push eax
push 0x3a
push edx
call sym.ollydbg.exe__Decodename
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jle 0x44ac56
lea eax, [ebp - 0x170]
mov edx, 0x4ba2a9
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x44ac56
test cl, cl
je 0x44ac2a
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x44ac56
add eax, 2
add edx, 2
test cl, cl
jne 0x44ac0e
jne 0x44ac56
mov eax, dword [ebp + 8]
mov edx, 0x4ba2c1
add eax, edi
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x44ac56
test cl, cl
je 0x44ac52
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x44ac56
add eax, 2
add edx, 2
test cl, cl
jne 0x44ac36
jne 0x44ac56
xor ebx, ebx
add edi, ebx
cmp dword [ebp - 8], 0
jle 0x44ac9b
mov eax, dword [ebp - 8]
add eax, edi
cmp eax, 0xfd
jge 0x44ac9b
test ebx, ebx
jle 0x44ac7e
mov edx, dword [ebp + 8]
mov byte [edx + edi], 0x3b
inc edi
mov ecx, dword [ebp + 8]
mov byte [ecx + edi], 0x20
inc edi
mov eax, dword [ebp - 8]
lea edx, [ebp - 0x170]
inc eax
push eax
push edx
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
call fcn.004a3530
add esp, 0xc
add edi, dword [ebp - 8]
cmp dword [0x4ea820], 0
je 0x44ad09
mov eax, dword [0x4e9ea8]
sub eax, dword [0x4e9ea0]
mov edx, dword [0x4ea820]
test byte [edx + eax], 0x40
je 0x44acd0
test edi, edi
jne 0x44acca
mov ecx, dword [ebp + 8]
mov edi, 1
mov byte [ecx], 0x20
mov eax, dword [ebp + 0xc]
or byte [eax], 8
mov edx, dword [0x4e9ea8]
sub edx, dword [0x4e9ea0]
mov ecx, dword [0x4ea820]
test byte [ecx + edx], 0x20
je 0x44ad09
test edi, edi
jne 0x44acf2
mov eax, dword [ebp + 8]
mov byte [eax], 0x20
cmp edi, 2
jge 0x44ad03
mov edx, dword [ebp + 8]
mov edi, 2
mov byte [edx + 1], 0x20
mov eax, dword [ebp + 0xc]
or byte [eax], 0x20
cmp edi, 0x100
jle 0x44ae34
mov edi, 0x100
jmp 0x44ae34
xor eax, eax
mov edi, eax
mov edx, dword [ebp + 8]
mov byte [edx + eax], 0
jmp 0x44ae34
cmp dword [ebp - 0x18], 0xd000
jne 0x44ae34
mov ecx, dword [0x4ea810]
cmp ecx, dword [esi + 0x385]
jbe 0x44ad62
mov eax, dword [0x4e9ea8]
cmp eax, dword [esi + 0x389]
jae 0x44ad62
mov edx, dword [ebp + 0x10]
mov dword [edx], 8
jmp 0x44ad69
mov ecx, dword [ebp + 0x10]
xor eax, eax
mov dword [ecx], eax
cmp dword [ebp + 0x18], 2
jne 0x44adec
mov edx, dword [ebp + 8]
xor eax, eax
push esi
or ecx, 0xffffffff
mov edi, 0x4e9fb4
mov esi, edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
mov eax, dword [ebp + 8]
push eax
call fcn.004a36d4
pop ecx
mov edi, eax
cmp dword [0x4ea814], 0
je 0x44ae34
mov eax, dword [0x4ea810]
cmp eax, dword [0x4e9ea8]
jbe 0x44ae34
mov edx, dword [0x4ea810]
mov ecx, dword [0x4ea818]
sub edx, dword [0x4e9ea8]
mov eax, dword [0x4ea814]
push edx
push ecx
push eax
call fcn.004a37d4
add esp, 0xc
test eax, eax
je 0x44ae34
mov edx, dword [ebp + 0x10]
or dword [edx], 2
jmp 0x44ae34
cmp dword [ebp + 0x18], 3
jne 0x44ae29
mov ecx, dword [ebp + 8]
push esi
mov esi, ecx
xor eax, eax
or ecx, 0xffffffff
mov edi, 0x4ea0b4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
mov eax, dword [ebp + 8]
push eax
call fcn.004a36d4
pop ecx
mov edi, eax
jmp 0x44ae34
xor eax, eax
mov edx, dword [ebp + 8]
mov edi, eax
mov byte [edx + eax], 0
cmp dword [ebp + 0x18], 0
jle 0x44ae43
test byte [esi + 0x257], 1
jne 0x44ae4c
cmp dword [esi + 0x24d], 0
je 0x44ae52
mov ecx, dword [ebp + 0x10]
or dword [ecx], 1
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret