Function at 0x45c374
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff930
push ebx
push esi
push edi
mov esi, dword [ebp + 8]
test esi, esi
jne 0x45c38f
or eax, 0xffffffff
jmp 0x45dd52
mov edx, dword [esi]
mov dword [ebp - 0x34], edx
lea ecx, [esi + 0x50]
push ecx
push str.Module__s
mov eax, dword [ebp - 0x34]
push eax
call sym.ollydbg.exe__Message
add esp, 0xc
lea edx, [esi + 0x48]
push 8
push 0x4bbed5
push edx
call fcn.004a3954
add esp, 0xc
test eax, eax
jne 0x45c3c9
mov dword [ebp - 0x24], 1
jmp 0x45c3ce
xor ecx, ecx
mov dword [ebp - 0x24], ecx
mov eax, dword [0x4d3b7c]
push eax
call sub.USER32.DLL_UpdateWindow
call sym.ollydbg.exe__Updatelist
mov dword [esi + 8], 3
mov edx, dword [ebp - 0x34]
cmp edx, dword [0x4d7364]
jne 0x45c3f4
or dword [esi + 8], 4
mov ecx, dword [0x4d6e9c]
lea eax, [esi + 0x50]
push ecx
push 0x4d6d98
push eax
call fcn.004a3840
add esp, 0xc
test eax, eax
jne 0x45c424
mov edx, dword [esi]
cmp edx, dword [0x4d7364]
je 0x45c424
mov dword [esi + 0x3f5], 1
xor ecx, ecx
mov dword [ebp - 0xc], ecx
lea eax, [esi + 0x401]
push eax
lea edx, [esi + 0x50]
push edx
call fcn.0045f1cc
add esp, 8
push 0x4bbad3
lea ecx, [esi + 0x50]
push ecx
call fcn.004a5374
add esp, 8
mov dword [ebp - 0x80], eax
test eax, eax
jne 0x45c45b
mov dword [ebp - 0xc], 1
cmp dword [ebp - 0xc], 0
jne 0x45c484
mov edx, dword [ebp - 0x80]
push edx
push 0x40
push 1
lea ecx, [ebp - 0x5c8]
push ecx
call fcn.004a55d0
add esp, 0x10
cmp eax, 0x40
je 0x45c484
mov dword [ebp - 0xc], 1
cmp dword [ebp - 0xc], 0
jne 0x45c49c
cmp word [ebp - 0x5c8], 0x5a4d
je 0x45c49c
mov dword [ebp - 0xc], 2
cmp dword [ebp - 0xc], 0
jne 0x45c4c2
push 0
mov eax, dword [ebp - 0x58c]
push eax
mov edx, dword [ebp - 0x80]
push edx
call fcn.004a5660
add esp, 0xc
test eax, eax
je 0x45c4c2
mov dword [ebp - 0xc], 1
cmp dword [ebp - 0xc], 0
jne 0x45c4e8
mov ecx, dword [ebp - 0x80]
push ecx
push 4
push 1
lea eax, [ebp - 0x40]
push eax
call fcn.004a55d0
add esp, 0x10
cmp eax, 4
je 0x45c4e8
mov dword [ebp - 0xc], 1
cmp dword [ebp - 0xc], 0
jne 0x45c4fe
cmp dword [ebp - 0x40], 0x4550
je 0x45c4fe
mov dword [ebp - 0xc], 2
cmp dword [ebp - 0xc], 0
jne 0x45c527
mov edx, dword [ebp - 0x80]
push edx
push 0x14
push 1
lea ecx, [ebp - 0x5dc]
push ecx
call fcn.004a55d0
add esp, 0x10
cmp eax, 0x14
je 0x45c527
mov dword [ebp - 0xc], 1
cmp dword [ebp - 0xc], 0
jne 0x45c53f
cmp word [ebp - 0x5dc], 0x14c
je 0x45c53f
mov dword [ebp - 0xc], 2
cmp dword [ebp - 0xc], 0
jne 0x45c555
test byte [ebp - 0x5ca], 2
jne 0x45c555
mov dword [ebp - 0xc], 2
cmp dword [ebp - 0xc], 0
jne 0x45c584
cmp word [ebp - 0x5cc], 0xe0
je 0x45c584
push 0xe0
movzx eax, word [ebp - 0x5cc]
push eax
push str.__Invalid_size_of_Optional_Header_in_File_Header___i._instead_of__i._bytes_
push 0xffffffffffffffff
push 0
call sym.ollydbg.exe__Addtolist
add esp, 0x14
cmp dword [ebp - 0xc], 0
jne 0x45c635
cmp word [ebp - 0x5cc], 0xe0
jae 0x45c5e0
push 0xe0
push 0
lea edx, [ebp - 0x6bc]
push edx
call fcn.004a35a0
add esp, 0xc
mov ecx, dword [ebp - 0x80]
lea edx, [ebp - 0x6bc]
push ecx
movzx eax, word [ebp - 0x5cc]
push eax
push 1
push edx
call fcn.004a55d0
add esp, 0x10
movzx ecx, word [ebp - 0x5cc]
cmp eax, ecx
je 0x45c635
mov dword [ebp - 0xc], 1
jmp 0x45c635
mov eax, dword [ebp - 0x80]
push eax
push 0xe0
push 1
lea edx, [ebp - 0x6bc]
push edx
call fcn.004a55d0
add esp, 0x10
cmp eax, 0xe0
je 0x45c608
mov dword [ebp - 0xc], 1
cmp dword [ebp - 0xc], 0
jne 0x45c635
cmp word [ebp - 0x5cc], 0xe0
jbe 0x45c635
push 1
movzx ecx, word [ebp - 0x5cc]
sub ecx, 0xe0
push ecx
mov eax, dword [ebp - 0x80]
push eax
call fcn.004a5660
add esp, 0xc
cmp dword [ebp - 0xc], 0
jne 0x45c64d
cmp word [ebp - 0x6bc], 0x10b
je 0x45c64d
mov dword [ebp - 0xc], 2
cmp dword [ebp - 0xc], 0
jne 0x45c67a
movzx edx, word [ebp - 0x5cc]
add edx, 0x80
mov ecx, dword [ebp - 0x660]
shl ecx, 3
add ecx, 0xe0
cmp edx, ecx
jge 0x45c67a
mov dword [ebp - 0xc], 2
cmp dword [ebp - 0xc], 0
jne 0x45c6a4
cmp dword [ebp - 0x69c], 0x1000
jae 0x45c6a4
mov eax, dword [ebp - 0x69c]
push eax
push str.__SectionAlignment_in_Optional_Header_is_less_than_0x1000__0x_X_bytes_
push 0xffffffffffffffff
push 0
call sym.ollydbg.exe__Addtolist
add esp, 0x10
cmp dword [ebp - 0xc], 0
jne 0x45c7b7
mov edx, dword [ebp - 0x6a8]
add edx, dword [ebp - 0x34]
mov dword [esi + 0xc], edx
mov ecx, dword [esi + 0xc]
add ecx, dword [ebp - 0x6b8]
add ecx, 0xfff
and ecx, 0xfffff000
sub ecx, dword [esi + 0xc]
mov dword [esi + 0x10], ecx
cmp dword [ebp - 0x6ac], 0
jne 0x45c6e5
xor eax, eax
mov dword [esi + 0x28], eax
jmp 0x45c704
mov edx, dword [ebp - 0x6ac]
add edx, dword [ebp - 0x34]
mov dword [esi + 0x28], edx
push str._ModuleEntryPoint_
push 0x32
mov ecx, dword [esi + 0x28]
push ecx
call sym.ollydbg.exe__Quickinsertname
add esp, 0xc
movzx eax, word [ebp - 0x5da]
mov dword [esi + 0x154], eax
cmp dword [esi + 0x154], 0
jle 0x45c740
cmp dword [esi + 0x154], 0x2000
jge 0x45c740
mov edx, dword [esi + 0x154]
shl edx, 3
lea edx, [edx + edx*4]
push edx
push 0
call sub.KERNEL32.DLL_GlobalAlloc
mov dword [esi + 0x158], eax
cmp dword [esi + 0x158], 0
je 0x45c793
mov ecx, dword [ebp - 0x80]
push ecx
mov eax, dword [esi + 0x154]
shl eax, 3
lea eax, [eax + eax*4]
push eax
push 1
mov edx, dword [esi + 0x158]
push edx
call fcn.004a55d0
add esp, 0x10
mov dword [ebp - 4], eax
mov ecx, dword [esi + 0x154]
shl ecx, 3
lea ecx, [ecx + ecx*4]
cmp ecx, dword [ebp - 4]
je 0x45c793
mov eax, dword [esi + 0x158]
push eax
call sub.KERNEL32.DLL_GlobalFree
xor edx, edx
mov dword [esi + 0x158], edx
mov ecx, dword [ebp - 0x680]
mov dword [esi + 0x15c], ecx
mov eax, dword [ebp - 0x6a4]
add eax, dword [ebp - 0x34]
mov dword [esi + 0x2c], eax
mov edx, dword [ebp - 0x6a0]
mov dword [esi + 0x160], edx
cmp dword [ebp - 0xc], 0
jne 0x45c8e9
cmp dword [ebp - 0x6a8], 0
je 0x45c8e9
cmp dword [esi + 0x28], 0
jne 0x45c7e3
mov ecx, dword [ebp - 0x34]
cmp ecx, dword [0x4d7364]
jne 0x45c8e9
xor eax, eax
mov dword [ebp - 4], eax
mov edx, dword [esi + 0x158]
lea ecx, [edx + 0xc]
mov dword [ebp - 0x84], ecx
jmp 0x45c813
mov eax, dword [ebp - 0x84]
mov edx, dword [eax]
cmp edx, dword [ebp - 0x6a8]
je 0x45c81e
inc dword [ebp - 4]
add dword [ebp - 0x84], 0x28
mov ecx, dword [ebp - 4]
cmp ecx, dword [esi + 0x154]
jl 0x45c7f9
mov eax, dword [ebp - 4]
cmp eax, dword [esi + 0x154]
jge 0x45c8e9
mov edx, dword [ebp - 4]
lea edx, [edx + edx*4]
mov ecx, dword [esi + 0x158]
mov eax, dword [ecx + edx*8 + 8]
cmp eax, dword [esi + 0x10]
jbe 0x45c8e9
mov edx, dword [ebp - 0x6b8]
lea ecx, [ebp - 0x288]
push edx
push str.__Code_size_in_header_is__08X__extending_to_size_of_section
push ecx
call fcn.004a6c2c
add esp, 0xc
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
lea eax, [eax + eax*4]
mov edx, dword [esi + 0x158]
cmp byte [edx + eax*8], 0
jne 0x45c898
mov ecx, dword [esi]
lea eax, [ebp - 0x288]
add ecx, dword [ebp - 0x6a8]
push ecx
push str.at__08X
add eax, dword [ebp - 8]
push eax
call fcn.004a6c2c
add esp, 0xc
jmp 0x45c8c1
mov edx, dword [ebp - 4]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esi + 0x158]
push edx
push 8
push 0x4bbfc9
lea ecx, [ebp - 0x288]
add ecx, dword [ebp - 8]
push ecx
call fcn.004a6c2c
add esp, 0x10
lea eax, [ebp - 0x288]
push eax
push 0xffffffffffffffff
mov edx, dword [esi + 0xc]
push edx
call sym.ollydbg.exe__Addtolist
add esp, 0xc
mov ecx, dword [ebp - 4]
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x158]
mov edx, dword [eax + ecx*8 + 8]
mov dword [esi + 0x10], edx
cmp dword [ebp - 0xc], 0
jne 0x45ca50
mov ecx, dword [esi + 0xc]
cmp ecx, dword [ebp - 0x34]
jne 0x45ca50
cmp dword [esi + 0x10], 0
jne 0x45ca50
xor eax, eax
mov dword [ebp - 4], eax
jmp 0x45ca41
mov edx, dword [ebp - 4]
lea edx, [edx + edx*4]
mov ecx, dword [esi + 0x158]
mov eax, dword [ecx + edx*8 + 0xc]
cmp eax, dword [ebp - 0x6ac]
ja 0x45ca3e
mov edx, dword [ebp - 4]
lea edx, [edx + edx*4]
mov ecx, dword [esi + 0x158]
mov eax, dword [ecx + edx*8 + 0xc]
mov edx, dword [ebp - 4]
lea edx, [edx + edx*4]
mov ecx, dword [esi + 0x158]
add eax, dword [ecx + edx*8 + 8]
cmp eax, dword [ebp - 0x6ac]
jbe 0x45ca3e
mov eax, dword [ebp - 4]
lea eax, [eax + eax*4]
mov edx, dword [esi + 0x158]
test byte [edx + eax*8 + 0x24], 0x20
je 0x45ca3e
mov ecx, dword [ebp - 4]
mov eax, dword [esi + 0x158]
lea ecx, [ecx + ecx*4]
mov edx, dword [eax + ecx*8 + 0xc]
add edx, 0xfff
and edx, 0xfffff000
add edx, dword [ebp - 0x34]
mov dword [esi + 0xc], edx
mov ecx, dword [ebp - 4]
mov eax, dword [esi + 0x158]
lea ecx, [ecx + ecx*4]
mov edx, dword [eax + ecx*8 + 0x10]
lea ecx, [ebp - 0x288]
add edx, 0xfff
and edx, 0xfffff000
mov dword [esi + 0x10], edx
push str.__Code_size_in_header_is_0__assuming_code_in_section
push ecx
call fcn.004a6c2c
add esp, 8
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
lea eax, [eax + eax*4]
mov edx, dword [esi + 0x158]
cmp byte [edx + eax*8], 0
jne 0x45c9fe
mov ecx, dword [esi]
lea eax, [ebp - 0x288]
add ecx, dword [ebp - 0x6a8]
push ecx
push str.at__08X
add eax, dword [ebp - 8]
push eax
call fcn.004a6c2c
add esp, 0xc
jmp 0x45ca27
mov edx, dword [ebp - 4]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esi + 0x158]
push edx
push 8
push 0x4bbfc9
lea ecx, [ebp - 0x288]
add ecx, dword [ebp - 8]
push ecx
call fcn.004a6c2c
add esp, 0x10
lea eax, [ebp - 0x288]
push eax
push 0xffffffffffffffff
mov edx, dword [esi + 0xc]
push edx
call sym.ollydbg.exe__Addtolist
add esp, 0xc
jmp 0x45ca50
inc dword [ebp - 4]
mov ecx, dword [ebp - 4]
cmp ecx, dword [esi + 0x154]
jl 0x45c913
cmp dword [ebp - 0xc], 0
jne 0x45cb38
cmp dword [esi + 0x158], 0
je 0x45cb38
xor eax, eax
mov dword [ebp - 0x3c], eax
xor edx, edx
mov dword [ebp - 4], edx
jmp 0x45cb1d
mov ecx, dword [ebp - 4]
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x158]
mov edx, dword [eax + ecx*8 + 0xc]
cmp edx, dword [ebp - 0x6a4]
jb 0x45cb1a
mov ecx, dword [ebp - 4]
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x158]
mov edx, dword [eax + ecx*8 + 0x24]
and edx, 0xe0000020
cmp edx, 0xc0000000
jne 0x45cb1a
mov ecx, dword [ebp - 4]
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x158]
test byte [eax + ecx*8 + 0x24], 0xc0
je 0x45cb1a
push 8
push str..data
mov edx, dword [ebp - 4]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esi + 0x158]
push edx
call fcn.004a3954
add esp, 0xc
test eax, eax
jne 0x45cafe
mov ecx, dword [ebp - 4]
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x158]
mov edx, dword [eax + ecx*8 + 0xc]
add edx, dword [ebp - 0x34]
mov dword [ebp - 0x3c], edx
jmp 0x45cb2c
cmp dword [ebp - 0x3c], 0
jne 0x45cb1a
mov ecx, dword [ebp - 4]
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x158]
mov edx, dword [eax + ecx*8 + 0xc]
add edx, dword [ebp - 0x34]
mov dword [ebp - 0x3c], edx
inc dword [ebp - 4]
mov ecx, dword [ebp - 4]
cmp ecx, dword [esi + 0x154]
jl 0x45ca76
cmp dword [ebp - 0x3c], 0
je 0x45cb38
mov eax, dword [ebp - 0x3c]
mov dword [esi + 0x2c], eax
cmp dword [ebp - 0xc], 0
jne 0x45cf85
mov edx, dword [ebp - 0x65c]
mov dword [ebp - 0x44], edx
mov ecx, dword [ebp - 0x658]
mov dword [ebp - 0x38], ecx
cmp dword [ebp - 0x38], 0
jne 0x45cb61
xor eax, eax
mov dword [ebp - 0x74], eax
jmp 0x45cb7f
mov edx, dword [ebp - 0x38]
add edx, 4
push edx
push 0
call sub.KERNEL32.DLL_GlobalAlloc
mov dword [ebp - 0x74], eax
cmp dword [ebp - 0x74], 0
jne 0x45cb7f
mov dword [ebp - 0xc], 3
cmp dword [ebp - 0x74], 0
je 0x45cf76
push 3
mov ecx, dword [ebp - 0x38]
push ecx
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x44]
push eax
mov edx, dword [ebp - 0x74]
push edx
call sym.ollydbg.exe__Readmemory
add esp, 0x10
cmp eax, dword [ebp - 0x38]
je 0x45cbb3
mov dword [ebp - 0xc], 2
jmp 0x45cc43
mov ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x44]
mov dword [esi + 0x38], ecx
mov eax, dword [ebp - 0x38]
mov dword [esi + 0x3c], eax
mov edx, dword [ebp - 0x74]
mov ecx, dword [edx + 0x1c]
sub ecx, dword [ebp - 0x44]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 0x74]
mov edx, dword [eax + 0x20]
sub edx, dword [ebp - 0x44]
mov dword [ebp - 0x54], edx
mov ecx, dword [ebp - 0x74]
mov eax, dword [ecx + 0x24]
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x58], eax
mov edx, dword [ebp - 0x74]
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x74]
mov edx, dword [eax + 0x14]
mov dword [ebp - 0x2c], edx
mov ecx, dword [ebp - 0x74]
mov eax, dword [ecx + 0x18]
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x2c]
shl edx, 2
add edx, dword [ebp - 0x50]
cmp edx, dword [ebp - 0x38]
jae 0x45cc2a
mov ecx, dword [ebp - 0x30]
shl ecx, 2
add ecx, dword [ebp - 0x54]
cmp ecx, dword [ebp - 0x38]
jae 0x45cc2a
mov eax, dword [ebp - 0x30]
add eax, eax
add eax, dword [ebp - 0x58]
cmp eax, dword [ebp - 0x38]
jb 0x45cc43
push str.__Invalid_or_compressed_Image_Export_Directory
push 0xffffffffffffffff
push 0
call sym.ollydbg.exe__Addtolist
add esp, 0xc
xor edx, edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0xc], 0
jne 0x45cf76
cmp dword [ebp - 0x2c], 0
jbe 0x45cc66
mov eax, dword [ebp - 0x2c]
shl eax, 2
push eax
push 0
call sub.KERNEL32.DLL_GlobalAlloc
mov dword [ebp - 0x14], eax
jmp 0x45cc6b
xor ecx, ecx
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 0
je 0x45ccce
xor eax, eax
mov dword [ebp - 4], eax
mov edx, dword [ebp - 0x14]
mov ecx, edx
mov dword [ebp - 0x84], ecx
jmp 0x45cc98
mov eax, dword [ebp - 0x84]
mov edx, dword [ebp - 0x30]
mov dword [eax], edx
inc dword [ebp - 4]
add dword [ebp - 0x84], 4
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 0x2c]
jb 0x45cc83
xor ebx, ebx
cmp ebx, dword [ebp - 0x30]
jae 0x45ccce
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0x58]
lea ecx, [eax + edx]
movzx eax, word [ecx + ebx*2]
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x2c]
jae 0x45ccc8
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov dword [ecx + eax*4], ebx
inc ebx
cmp ebx, dword [ebp - 0x30]
jb 0x45cca7
lea edx, [ebp - 0x588]
push edx
lea ecx, [ebp - 0x388]
push ecx
push 0
push 0
lea eax, [esi + 0x50]
push eax
call fcn.004a51bc
add esp, 0x14
lea edx, [ebp - 0x588]
push edx
lea ecx, [ebp - 0x388]
push ecx
call fcn.004a3644
add esp, 8
mov edi, 0x10000
lea eax, [ebp - 0x288]
push eax
push 0x81
push edi
call sym.ollydbg.exe__Findname
add esp, 0xc
mov ebx, eax
test ebx, ebx
jne 0x45cd26
xor edi, edi
jmp 0x45cd4e
lea eax, [ebp - 0x388]
push eax
lea edx, [ebp - 0x288]
push edx
call fcn.004a38bc
add esp, 8
test eax, eax
je 0x45cd4e
add edi, 0x10000
cmp edi, 0x10000000
jbe 0x45cd07
xor ecx, ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 0x14]
mov edx, eax
mov dword [ebp - 0x84], edx
jmp 0x45cf5b
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x50]
lea edx, [ecx + eax]
mov ecx, dword [ebp - 4]
mov eax, dword [edx + ecx*4]
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x3c]
cmp edx, dword [ebp - 0x38]
jb 0x45cf51
cmp dword [ebp - 0x14], 0
je 0x45cd94
mov ecx, dword [ebp - 0x84]
mov ebx, dword [ecx]
jmp 0x45cdb4
xor ebx, ebx
cmp ebx, dword [ebp - 0x30]
jae 0x45cdb4
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0x58]
lea ecx, [eax + edx]
mov ax, word [ecx + ebx*2]
cmp ax, word [ebp - 4]
je 0x45cdb4
inc ebx
cmp ebx, dword [ebp - 0x30]
jb 0x45cd9b
cmp ebx, dword [ebp - 0x30]
jae 0x45cea1
mov edx, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x54]
lea eax, [edx + ecx]
cmp dword [eax + ebx*4], 0
je 0x45cea1
mov edx, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x54]
lea eax, [edx + ecx]
mov eax, dword [eax + ebx*4]
sub eax, dword [ebp - 0x44]
cmp eax, dword [ebp - 0x38]
jb 0x45cdf7
mov dword [ebp - 0xc], 2
mov byte [ebp - 0x288], 0
jmp 0x45cf36
push 0xff
mov edx, dword [ebp - 0x74]
add edx, eax
push edx
lea ecx, [ebp - 0x288]
push ecx
call fcn.004a3904
add esp, 0xc
mov byte [ebp - 0x189], 0
cmp dword [ebp - 0x24], 0
je 0x45cf36
lea eax, [ebp - 0x288]
mov edx, 0x4bc03b
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x45ce59
test cl, cl
je 0x45ce49
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x45ce59
add eax, 2
add edx, 2
test cl, cl
jne 0x45ce2d
jne 0x45ce59
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x34]
mov dword [0x4d77d4], eax
lea eax, [ebp - 0x288]
mov edx, 0x4bc046
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x45cf36
test cl, cl
je 0x45ce88
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x45cf36
add eax, 2
add edx, 2
test cl, cl
jne 0x45ce64
jne 0x45cf36
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x34]
mov dword [0x4d77d8], eax
jmp 0x45cf36
mov edx, dword [ebp - 4]
lea ecx, [ebp - 0x288]
add edx, dword [ebp - 0x28]
push edx
push 0x4bc052
push ecx
call fcn.004a6c2c
add esp, 0xc
mov dword [ebp - 8], eax
test edi, edi
je 0x45cf36
lea eax, [ebp - 0x287]
add eax, dword [ebp - 8]
push eax
push 0x82
mov edx, dword [ebp - 4]
add edx, edi
add edx, dword [ebp - 0x28]
push edx
call sym.ollydbg.exe__Findname
add esp, 0xc
test eax, eax
jle 0x45cf36
cmp dword [0x4d6eb4], 0
je 0x45cefd
mov ecx, dword [ebp - 8]
mov byte [ebp + ecx - 0x288], 0x5f
jmp 0x45cf2f
lea eax, [ebp - 0x287]
add eax, dword [ebp - 8]
push esi
push edi
mov edi, eax
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea esi, [ebp - 0x288]
xchg edi, esi
mov edx, ecx
mov eax, edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
mov byte [ebp - 0x189], 0
lea eax, [ebp - 0x288]
push eax
push 0x32
mov edx, dword [ebp - 0x3c]
add edx, dword [ebp - 0x44]
add edx, dword [ebp - 0x34]
push edx
call sym.ollydbg.exe__Quickinsertname
add esp, 0xc
inc dword [ebp - 4]
add dword [ebp - 0x84], 4
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 0x2c]
jb 0x45cd63
cmp dword [ebp - 0x14], 0
je 0x45cf76
mov eax, dword [ebp - 0x14]
push eax
call sub.KERNEL32.DLL_GlobalFree
cmp dword [ebp - 0x74], 0
je 0x45cf85
mov edx, dword [ebp - 0x74]
push edx
call sub.KERNEL32.DLL_GlobalFree
cmp dword [ebp - 0xc], 0
jne 0x45d63e
cmp dword [esi + 0x158], 0
je 0x45d63e
mov ecx, dword [ebp - 0x654]
xor edx, edx
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x650]
mov dword [ebp - 0x38], eax
mov dword [ebp - 4], edx
mov ecx, dword [esi + 0x158]
lea eax, [ecx + 0xc]
mov dword [ebp - 0x84], eax
jmp 0x45cff1
mov edx, dword [ebp - 0x84]
mov ecx, dword [edx]
cmp ecx, dword [ebp - 0x44]
ja 0x45cfe7
mov eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x84]
mov edx, dword [eax]
add edx, dword [ecx + 4]
cmp edx, dword [ebp - 0x44]
ja 0x45cffc
inc dword [ebp - 4]
add dword [ebp - 0x84], 0x28
mov eax, dword [ebp - 4]
cmp eax, dword [esi + 0x154]
jl 0x45cfc4
cmp dword [ebp - 0xc], 0
jne 0x45d013
cmp dword [ebp - 0x38], 0
je 0x45d013
mov edx, dword [ebp - 4]
cmp edx, dword [esi + 0x154]
jl 0x45d01f
xor ecx, ecx
mov dword [ebp - 0x5c], ecx
xor eax, eax
mov dword [ebp - 0x78], eax
jmp 0x45d06e
mov edx, dword [ebp - 4]
lea edx, [edx + edx*4]
mov ecx, dword [esi + 0x158]
mov eax, dword [ecx + edx*8 + 0xc]
mov dword [ebp - 0x48], eax
mov edx, dword [ebp - 4]
lea edx, [edx + edx*4]
mov ecx, dword [esi + 0x158]
mov eax, dword [ecx + edx*8 + 0x10]
mov dword [ebp - 0x5c], eax
mov edx, dword [ebp - 0x5c]
cmp edx, dword [ebp - 0x38]
jae 0x45d053
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x5c], ecx
mov eax, dword [ebp - 0x5c]
push eax
push 0
call sub.KERNEL32.DLL_GlobalAlloc
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
jne 0x45d06e
mov dword [ebp - 0xc], 3
cmp dword [ebp - 0x78], 0
je 0x45d0ba
mov edx, dword [ebp - 0x48]
add edx, dword [ebp - 0x34]
mov dword [esi + 0x34], edx
push 0
mov ecx, dword [ebp - 4]
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x158]
mov edx, dword [eax + ecx*8 + 0x14]
push edx
mov ecx, dword [ebp - 0x80]
push ecx
call fcn.004a5660
add esp, 0xc
mov eax, dword [ebp - 0x80]
push eax
mov edx, dword [ebp - 0x5c]
push edx
push 1
mov ecx, dword [ebp - 0x78]
push ecx
call fcn.004a55d0
add esp, 0x10
cmp eax, dword [ebp - 0x5c]
jae 0x45d0ba
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x78], 0
je 0x45d62f
cmp dword [ebp - 0xc], 0
jne 0x45d62f
xor eax, eax
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x34]
add edx, dword [ebp - 0x44]
mov dword [esi + 0x30], edx
xor ecx, ecx
mov dword [ebp - 4], ecx
jmp 0x45d61d
push 3
push 0x14
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x44]
add eax, dword [ebp - 4]
push eax
lea edx, [ebp - 0x6d0]
push edx
call sym.ollydbg.exe__Readmemory
add esp, 0x10
test eax, eax
jne 0x45d113
mov dword [ebp - 0xc], 2
jmp 0x45d62f
cmp dword [ebp - 0x6c4], 0
je 0x45d62f
push 3
push 0x204
mov ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x6c4]
push ecx
lea eax, [ebp - 0x288]
push eax
call sym.ollydbg.exe__Readmemory
add esp, 0x10
test eax, eax
jne 0x45d192
mov edx, dword [ebp - 0x34]
add edx, dword [ebp - 0x6c4]
and edx, 0xfff
mov eax, 0x1000
sub eax, edx
cmp eax, 0x204
jbe 0x45d166
mov eax, 0x204
push 3
push eax
mov edx, dword [ebp - 0x34]
add edx, dword [ebp - 0x6c4]
push edx
lea ecx, [ebp - 0x288]
push ecx
call sym.ollydbg.exe__Readmemory
add esp, 0x10
test eax, eax
jne 0x45d192
mov dword [ebp - 0xc], 2
jmp 0x45d62f
lea eax, [ebp - 0x588]
push eax
lea edx, [ebp - 0x388]
push edx
push 0
push 0
lea ecx, [ebp - 0x288]
push ecx
call fcn.004a51bc
add esp, 0x14
cmp dword [ebp - 0x6d0], 0
je 0x45d1d6
mov eax, dword [ebp - 0x6d0]
sub eax, dword [ebp - 0x48]
mov dword [ebp - 0x60], eax
mov edx, dword [ebp - 0x6c0]
sub edx, dword [ebp - 0x48]
mov dword [ebp - 0x64], edx
jmp 0x45d1e8
mov ecx, dword [ebp - 0x6c0]
sub ecx, dword [ebp - 0x48]
mov dword [ebp - 0x60], ecx
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x64], eax
xor edx, edx
mov ecx, dword [0x4d7218]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x7c], ecx
cmp dword [ebp - 0x7c], 0
je 0x45d239
xor ebx, ebx
jmp 0x45d224
push 8
lea eax, [ebp - 0x388]
push eax
mov edx, dword [ebp - 0x7c]
add edx, 0x48
push edx
call fcn.004a3954
add esp, 0xc
test eax, eax
je 0x45d22c
inc ebx
add dword [ebp - 0x7c], 0x465
cmp ebx, dword [0x4d7200]
jb 0x45d200
cmp ebx, dword [0x4d7200]
jb 0x45d239
xor ecx, ecx
mov dword [ebp - 0x7c], ecx
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x5c]
jae 0x45d24f
mov edx, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x60]
mov eax, dword [edx + ecx]
mov dword [ebp - 0x3c], eax
jmp 0x45d2b3
cmp dword [ebp - 0x10], 0
jne 0x45d266
push str.__Import_Lookup_Table_outside_.idata
push 0xffffffffffffffff
push 0
call sym.ollydbg.exe__Addtolist
add esp, 0xc
mov dword [ebp - 0x10], 1
mov edx, dword [ebp - 0x60]
add edx, dword [ebp - 0x48]
add edx, dword [ebp - 0x34]
push edx
push esi
call sym.ollydbg.exe__Findfileoffset
add esp, 8
test eax, eax
jne 0x45d290
mov dword [ebp - 0xc], 2
jmp 0x45d614
push 0
push eax
mov ecx, dword [ebp - 0x80]
push ecx
call fcn.004a5660
add esp, 0xc
mov eax, dword [ebp - 0x80]
push eax
push 4
push 1
lea edx, [ebp - 0x3c]
push edx
call fcn.004a55d0
add esp, 0x10
cmp dword [ebp - 0x3c], 0
je 0x45d614
test byte [ebp - 0x39], 0x80
je 0x45d4f2
cmp dword [ebp - 0x18], 0
jne 0x45d365
xor eax, eax
push esi
lea edi, [ebp - 0x388]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea esi, [ebp - 0x488]
xchg edi, esi
mov edx, ecx
mov eax, edi
shr ecx, 2
lea eax, [ebp - 0x588]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [ebp - 0x488]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
push eax
push edx
call fcn.004a3644
add esp, 8
mov edi, 0x10000
lea eax, [ebp - 0x288]
push eax
push 0x81
push edi
call sym.ollydbg.exe__Findname
add esp, 0xc
mov ebx, eax
test ebx, ebx
jne 0x45d336
xor edi, edi
jmp 0x45d35e
lea eax, [ebp - 0x488]
push eax
lea edx, [ebp - 0x288]
push edx
call fcn.004a38bc
add esp, 8
test eax, eax
je 0x45d35e
add edi, 0x10000
cmp edi, 0x10000000
jb 0x45d317
mov dword [ebp - 0x18], 1
and dword [ebp - 0x3c], 0x7fffffff
test edi, edi
je 0x45d3fa
cmp dword [ebp - 0x3c], 0x10000
jae 0x45d3fa
lea ecx, [ebp - 0x488]
push ecx
push 0x82
mov eax, dword [ebp - 0x3c]
add eax, edi
push eax
call sym.ollydbg.exe__Findname
add esp, 0xc
test eax, eax
jle 0x45d3fa
cmp dword [0x4d6eb4], 0
je 0x45d3cc
lea edx, [ebp - 0x488]
lea eax, [ebp - 0x388]
push edx
lea edx, [ebp - 0x288]
mov ecx, dword [ebp - 0x3c]
push ecx
push eax
push str._s._i__s
push edx
call fcn.004a6c2c
add esp, 0x14
jmp 0x45d3ee
lea ecx, [ebp - 0x488]
lea eax, [ebp - 0x388]
push ecx
push eax
lea edx, [ebp - 0x288]
push str._s._s
push edx
call fcn.004a6c2c
add esp, 0x10
mov byte [ebp - 0x189], 0
jmp 0x45d5ec
cmp dword [ebp - 0x7c], 0
je 0x45d4ce
push 3
push 4
mov ecx, dword [ebp - 0x64]
add ecx, dword [ebp - 0x48]
add ecx, dword [ebp - 0x34]
push ecx
lea eax, [ebp - 0x70]
push eax
call sym.ollydbg.exe__Readmemory
add esp, 0x10
cmp eax, 4
jne 0x45d4ce
mov edx, dword [ebp - 0x7c]
mov ecx, dword [edx]
cmp ecx, dword [ebp - 0x70]
ja 0x45d4ce
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x7c]
mov edx, dword [eax]
add edx, dword [ecx + 4]
cmp edx, dword [ebp - 0x70]
jbe 0x45d4ce
lea eax, [ebp - 0x488]
push eax
push 0x32
mov edx, dword [ebp - 0x70]
push edx
call sym.ollydbg.exe__Findname
add esp, 0xc
test eax, eax
jle 0x45d4ce
xor ecx, ecx
mov cl, byte [ebp - 0x488]
cmp ecx, 0x23
je 0x45d4ce
cmp dword [0x4d6eb4], 0
je 0x45d4a0
lea eax, [ebp - 0x488]
lea ecx, [ebp - 0x388]
push eax
lea eax, [ebp - 0x288]
mov edx, dword [ebp - 0x3c]
push edx
push ecx
push str._s._i__s
push eax
call fcn.004a6c2c
add esp, 0x14
jmp 0x45d4c2
lea edx, [ebp - 0x488]
lea ecx, [ebp - 0x388]
push edx
push ecx
lea eax, [ebp - 0x288]
push str._s._s
push eax
call fcn.004a6c2c
add esp, 0x10
mov byte [ebp - 0x189], 0
jmp 0x45d5ec
mov edx, dword [ebp - 0x3c]
lea ecx, [ebp - 0x388]
push edx
push ecx
lea eax, [ebp - 0x288]
push str._s._i
push eax
call fcn.004a6c2c
add esp, 0x10
jmp 0x45d5ec
mov edx, dword [ebp - 0x48]
sub dword [ebp - 0x3c], edx
mov ecx, dword [ebp - 0x3c]
cmp ecx, dword [ebp - 0x5c]
jae 0x45d542
mov eax, dword [ebp - 0x78]
add eax, dword [ebp - 0x3c]
add eax, 2
push eax
lea edx, [ebp - 0x388]
push edx
call fcn.004a36d4
pop ecx
lea edx, [ebp - 0x288]
mov ecx, 0x100
sub ecx, eax
lea eax, [ebp - 0x388]
sub ecx, 2
push ecx
push eax
push str._s._.s
push edx
call fcn.004a6c2c
add esp, 0x14
jmp 0x45d5ec
lea ecx, [ebp - 0x388]
lea eax, [ebp - 0x288]
push ecx
push 0x4bc09a
push eax
call fcn.004a6c2c
add esp, 0xc
mov ebx, eax
mov eax, 0xfe
lea ecx, [ebp - 0x288]
sub eax, ebx
push 3
push eax
mov edx, dword [ebp - 0x3c]
add edx, dword [ebp - 0x48]
add edx, dword [ebp - 0x34]
add edx, 2
add ecx, ebx
push edx
push ecx
call sym.ollydbg.exe__Readmemory
add esp, 0x10
test eax, eax
jne 0x45d5e5
mov eax, dword [ebp - 0x3c]
mov ecx, 0xfe
add eax, dword [ebp - 0x48]
sub ecx, ebx
add eax, dword [ebp - 0x34]
add eax, 2
and eax, 0xfff
push eax
mov eax, 0x1000
pop edx
sub eax, edx
cmp eax, ecx
jbe 0x45d5b7
mov eax, 0xfe
sub eax, ebx
push 3
push eax
mov edx, dword [ebp - 0x3c]
lea ecx, [ebp - 0x288]
add edx, dword [ebp - 0x48]
add edx, dword [ebp - 0x34]
add edx, 2
add ecx, ebx
push edx
push ecx
call sym.ollydbg.exe__Readmemory
add esp, 0x10
test eax, eax
jne 0x45d5e5
mov dword [ebp - 0xc], 2
jmp 0x45d614
mov byte [ebp - 0x18a], 0
lea eax, [ebp - 0x288]
push eax
push 0x33
mov edx, dword [ebp - 0x64]
add edx, dword [ebp - 0x48]
add edx, dword [ebp - 0x34]
push edx
call sym.ollydbg.exe__Quickinsertname
add esp, 0xc
add dword [ebp - 0x60], 4
add dword [ebp - 0x64], 4
jmp 0x45d239
mov ecx, dword [ebp - 4]
add ecx, 0x14
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x38]
jae 0x45d62f
cmp dword [ebp - 0xc], 0
je 0x45d0e6
cmp dword [ebp - 0x78], 0
je 0x45d63e
mov edx, dword [ebp - 0x78]
push edx
call sub.KERNEL32.DLL_GlobalFree
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0xc], 0
jne 0x45da0e
cmp dword [esi + 0x158], 0
je 0x45da0e
mov edx, dword [ebp - 0x634]
xor eax, eax
mov dword [ebp - 0x44], edx
mov ecx, dword [ebp - 0x630]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 4], eax
mov edx, dword [esi + 0x158]
lea ecx, [edx + 0xc]
mov dword [ebp - 0x84], ecx
jmp 0x45d6b4
mov eax, dword [ebp - 0x84]
mov edx, dword [eax]
cmp edx, dword [ebp - 0x44]
ja 0x45d6aa
mov ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
mov eax, dword [ecx]
add eax, dword [edx + 4]
cmp eax, dword [ebp - 0x44]
ja 0x45d6bf
inc dword [ebp - 4]
add dword [ebp - 0x84], 0x28
mov ecx, dword [ebp - 4]
cmp ecx, dword [esi + 0x154]
jl 0x45d687
cmp dword [ebp - 0xc], 0
jne 0x45d6d6
cmp dword [ebp - 0x38], 0
je 0x45d6d6
mov eax, dword [ebp - 4]
cmp eax, dword [esi + 0x154]
jl 0x45d6dd
xor edx, edx
mov dword [ebp - 0x78], edx
jmp 0x45d707
mov ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x44]
mov dword [esi + 0x40], ecx
mov eax, dword [ebp - 0x38]
mov dword [esi + 0x44], eax
mov edx, dword [ebp - 0x38]
push edx
push 0
call sub.KERNEL32.DLL_GlobalAlloc
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
jne 0x45d707
mov dword [ebp - 0xc], 3
cmp dword [ebp - 0x78], 0
je 0x45d763
push 0
mov ecx, dword [ebp - 4]
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x158]
mov edx, dword [eax + ecx*8 + 0x14]
mov ecx, dword [ebp - 4]
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x158]
mov ebx, dword [ebp - 0x44]
sub ebx, dword [eax + ecx*8 + 0xc]
add edx, ebx
push edx
mov eax, dword [ebp - 0x80]
push eax
call fcn.004a5660
add esp, 0xc
mov edx, dword [ebp - 0x80]
push edx
mov ecx, dword [ebp - 0x38]
push ecx
push 1
mov eax, dword [ebp - 0x78]
push eax
call fcn.004a55d0
add esp, 0x10
cmp eax, dword [ebp - 0x38]
je 0x45d763
mov dword [ebp - 0xc], 1
cmp dword [ebp - 0x78], 0
je 0x45d9ff
cmp dword [ebp - 0xc], 0
jne 0x45d9ff
mov dword [ebp - 0x1c], 1
mov edx, dword [ebp - 0x38]
shl edx, 2
add edx, 8
push edx
push 0x40
call sub.KERNEL32.DLL_GlobalAlloc
mov dword [esi + 0x168], eax
cmp dword [esi + 0x168], 0
jne 0x45d7aa
mov dword [ebp - 0xc], 3
jmp 0x45d9ca
xor eax, eax
jmp 0x45d8bd
mov edx, dword [ebp - 0x78]
mov ecx, dword [edx + eax]
add ecx, dword [ebp - 0x34]
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x78]
mov edx, dword [edx + eax + 4]
add eax, 8
test edx, edx
je 0x45d8b7
cmp edx, 8
jb 0x45d7d9
cmp edx, dword [ebp - 0x38]
jbe 0x45d7e5
mov dword [ebp - 0xc], 2
jmp 0x45d8cf
sub edx, 8
xor ecx, ecx
shr edx, 1
mov dword [ebp - 8], edx
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 8]
jge 0x45d8b1
mov ecx, dword [ebp - 0x78]
mov edx, dword [esi + 0x168]
movzx ebx, word [ecx + eax]
mov edi, ebx
mov ecx, dword [esi + 0x164]
shr ebx, 0xc
and edi, 0xfff
add edi, dword [ebp - 0x3c]
and ebx, 0xf
add eax, 2
test ebx, ebx
mov dword [edx + ecx*8], edi
je 0x45d8a2
cmp ebx, 3
je 0x45d843
mov edx, dword [esi + 0xc]
add edx, dword [esi + 0x10]
cmp edx, dword [esi + 0x28]
ja 0x45d843
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
jmp 0x45d8b1
cmp ebx, 1
je 0x45d857
cmp ebx, 2
je 0x45d857
cmp ebx, 4
je 0x45d857
cmp ebx, 0xb
jne 0x45d86d
mov edx, dword [esi + 0x168]
mov ecx, dword [esi + 0x164]
mov dword [edx + ecx*8 + 4], 2
jmp 0x45d89c
cmp ebx, 0xa
jne 0x45d888
mov edx, dword [esi + 0x168]
mov ecx, dword [esi + 0x164]
mov dword [edx + ecx*8 + 4], 8
jmp 0x45d89c
mov edx, dword [esi + 0x168]
mov ecx, dword [esi + 0x164]
mov dword [edx + ecx*8 + 4], 4
inc dword [esi + 0x164]
inc dword [ebp - 4]
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 8]
jl 0x45d7fe
cmp dword [ebp - 0x1c], 0
je 0x45d8cf
add eax, 3
and eax, 0xfffffffc
cmp dword [ebp - 0xc], 0
jne 0x45d8cf
lea ecx, [eax + 8]
cmp ecx, dword [ebp - 0x38]
jb 0x45d7b1
push 0x45f340
push 8
mov eax, dword [esi + 0x164]
push eax
mov edx, dword [esi + 0x168]
push edx
call fcn.004ac4f4
add esp, 0x10
xor ecx, ecx
mov dword [ebp - 4], ecx
mov eax, dword [esi + 0x168]
mov edx, eax
mov dword [ebp - 0x84], edx
jmp 0x45d939
mov ecx, dword [ebp - 0x84]
mov eax, dword [ecx]
cmp eax, dword [esi + 0xc]
jb 0x45d92f
mov edx, dword [ebp - 0x84]
cmp dword [edx + 4], 4
jne 0x45d92f
mov ecx, dword [ebp - 0x84]
mov edx, dword [esi + 0xc]
add edx, dword [esi + 0x10]
mov eax, dword [ecx]
add eax, 4
cmp eax, edx
jbe 0x45d944
inc dword [ebp - 4]
add dword [ebp - 0x84], 8
mov ecx, dword [ebp - 4]
cmp ecx, dword [esi + 0x164]
jl 0x45d901
mov eax, dword [ebp - 4]
cmp eax, dword [esi + 0x164]
jge 0x45d9a7
mov edx, dword [esi + 0x168]
mov ecx, dword [ebp - 4]
mov eax, dword [edx + ecx*8]
push eax
push esi
call sym.ollydbg.exe__Findfileoffset
add esp, 8
test eax, eax
je 0x45d9a7
push 0
push eax
mov edx, dword [ebp - 0x80]
push edx
call fcn.004a5660
add esp, 0xc
mov ecx, dword [ebp - 0x80]
push ecx
push 4
push 1
lea eax, [ebp - 0x6c]
push eax
call fcn.004a55d0
add esp, 0x10
cmp eax, 4
je 0x45d998
xor edx, edx
mov dword [ebp - 0x6c], edx
jmp 0x45d9a7
mov ecx, dword [esi + 0x168]
mov eax, dword [ebp - 4]
mov edx, dword [ecx + eax*8]
mov dword [ebp - 0x68], edx
mov ecx, dword [esi + 0x168]
mov eax, dword [esi + 0x164]
xor edx, edx
mov dword [ecx + eax*8], edx
mov ecx, dword [esi + 0x168]
mov eax, dword [esi + 0x164]
xor edx, edx
mov dword [ecx + eax*8 + 4], edx
cmp dword [ebp - 0x1c], 0
jne 0x45d9ff
push str.__Fixup_table_is_packed_or_corrupted
push 0xffffffffffffffff
push 0
call sym.ollydbg.exe__Addtolist
add esp, 0xc
mov ecx, dword [esi + 0x168]
push ecx
call sub.KERNEL32.DLL_GlobalFree
xor eax, eax
mov dword [esi + 0x168], eax
xor edx, edx
mov dword [ebp - 0x68], edx
xor ecx, ecx
mov dword [ebp - 0x6c], ecx
cmp dword [ebp - 0x78], 0
je 0x45da0e
mov eax, dword [ebp - 0x78]
push eax
call sub.KERNEL32.DLL_GlobalFree
cmp dword [ebp - 0xc], 0
jne 0x45da29
mov edx, dword [ebp - 0x34]
add edx, dword [ebp - 0x64c]
mov dword [esi + 0x14], edx
mov ecx, dword [ebp - 0x648]
mov dword [esi + 0x18], ecx
cmp dword [ebp - 0xc], 0
jne 0x45dade
cmp dword [esi + 0x158], 0
je 0x45dade
mov eax, dword [ebp - 0x62c]
xor ecx, ecx
mov dword [ebp - 0x44], eax
mov edx, dword [ebp - 0x628]
mov dword [ebp - 0x38], edx
mov dword [ebp - 4], ecx
mov eax, dword [esi + 0x158]
lea edx, [eax + 0xc]
mov dword [ebp - 0x84], edx
jmp 0x45da95
mov ecx, dword [ebp - 0x84]
mov eax, dword [ecx]
cmp eax, dword [ebp - 0x44]
ja 0x45da8b
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x84]
mov ecx, dword [edx]
add ecx, dword [eax + 4]
cmp ecx, dword [ebp - 0x44]
ja 0x45daa0
inc dword [ebp - 4]
add dword [ebp - 0x84], 0x28
mov edx, dword [ebp - 4]
cmp edx, dword [esi + 0x154]
jl 0x45da68
cmp dword [ebp - 0x38], 0
je 0x45dab1
mov ecx, dword [ebp - 4]
cmp ecx, dword [esi + 0x154]
jl 0x45dab8
xor eax, eax
mov dword [ebp - 0x4c], eax
jmp 0x45dade
mov edx, dword [ebp - 4]
lea edx, [edx + edx*4]
mov ecx, dword [esi + 0x158]
mov eax, dword [ebp - 0x44]
sub eax, dword [ecx + edx*8 + 0xc]
mov edx, dword [ebp - 4]
lea edx, [edx + edx*4]
mov ecx, dword [esi + 0x158]
add eax, dword [ecx + edx*8 + 0x14]
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x80], 0
je 0x45daee
mov eax, dword [ebp - 0x80]
push eax
call fcn.004a4ed8
pop ecx
push 1
call fcn.00464580
pop ecx
mov edx, dword [esi + 0x10]
mov dword [esi + 0x3e9], edx
cmp dword [ebp - 0xc], 0
jne 0x45dcba
cmp dword [0x4d8d64], 0
je 0x45db34
cmp dword [esi + 0x28], 0
je 0x45db34
mov ecx, dword [esi + 0xc]
cmp ecx, dword [esi + 0x28]
ja 0x45db2b
mov eax, dword [esi + 0xc]
add eax, dword [esi + 0x10]
cmp eax, dword [esi + 0x28]
ja 0x45db34
mov dword [ebp - 0x20], 1
jmp 0x45db86
xor edx, edx
mov dword [ebp - 0x20], edx
cmp dword [esi + 0x28], 0
jmp 0x45db86
cmp dword [esi + 0x158], 0
je 0x45dc73
mov ecx, dword [esi + 0xc]
add ecx, dword [esi + 0x10]
cmp ecx, dword [esi + 0x28]
ja 0x45dc73
mov eax, dword [esi + 0x28]
sub eax, dword [esi]
xor edx, edx
mov dword [ebp - 0x44], eax
mov dword [ebp - 4], edx
mov ecx, dword [esi + 0x158]
lea eax, [ecx + 0xc]
mov dword [ebp - 0x84], eax
jmp 0x45dbed
mov edx, dword [ebp - 0x84]
mov ecx, dword [edx]
cmp ecx, dword [ebp - 0x44]
ja 0x45dbe3
mov eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x84]
mov edx, dword [eax]
add edx, dword [ecx + 4]
cmp edx, dword [ebp - 0x44]
ja 0x45dbf8
inc dword [ebp - 4]
add dword [ebp - 0x84], 0x28
mov eax, dword [ebp - 4]
cmp eax, dword [esi + 0x154]
jl 0x45dbc0
mov edx, dword [ebp - 4]
cmp edx, dword [esi + 0x154]
jge 0x45dc73
mov ecx, dword [ebp - 4]
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x158]
mov edx, dword [eax + ecx*8 + 0xc]
add edx, dword [esi]
mov dword [esi + 0x3ed], edx
mov ecx, dword [ebp - 4]
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x158]
mov edx, dword [eax + ecx*8 + 8]
mov dword [esi + 0x3f1], edx
cmp dword [0x4d8d60], 0
je 0x45dc73
mov ecx, dword [ebp - 4]
mov eax, dword [esi + 0x158]
lea ecx, [ecx + ecx*4]
mov edx, dword [eax + ecx*8 + 0xc]
mov ecx, dword [ebp - 4]
mov eax, dword [esi + 0x158]
add edx, dword [esi]
lea ecx, [ecx + ecx*4]
add edx, dword [eax + ecx*8 + 8]
sub edx, dword [esi + 0xc]
mov dword [esi + 0x10], edx
push str.__Code_section_extended_to_include_self_extractor
push 0xffffffffffffffff
push 0
call sym.ollydbg.exe__Addtolist
add esp, 0xc
mov edx, dword [ebp - 0x20]
push edx
mov ecx, dword [ebp - 0x6c]
push ecx
mov eax, dword [ebp - 0x68]
push eax
push esi
call fcn.0045e0f0
add esp, 0x10
lea edx, [esi + 0x50]
push edx
mov ecx, dword [ebp - 0x4c]
push ecx
push esi
call fcn.00492620
add esp, 0xc
cmp dword [0x4d70f8], 0
je 0x45dd3d
push 0
push 0
mov eax, dword [0x4d70f8]
push eax
call sub.USER32.DLL_InvalidateRect
jmp 0x45dd3d
cmp dword [ebp - 0xc], 1
jne 0x45dcd3
lea edx, [esi + 0x50]
push edx
push str.Unable_to_open_or_read_executable_file__s
call sym.ollydbg.exe__Error
add esp, 8
jmp 0x45dd03
cmp dword [ebp - 0xc], 2
jne 0x45dcec
lea ecx, [esi + 0x50]
push ecx
push str.Bad_or_unknown_format_of_32_bit_executable_file__s
call sym.ollydbg.exe__Error
add esp, 8
jmp 0x45dd03
cmp dword [ebp - 0xc], 3
jne 0x45dd03
lea eax, [esi + 0x50]
push eax
push str.File__s_contains_too_much_data
call sym.ollydbg.exe__Error
add esp, 8
cmp dword [esi + 0x158], 0
je 0x45dd18
mov edx, dword [esi + 0x158]
push edx
call sub.KERNEL32.DLL_GlobalFree
xor ecx, ecx
mov dword [esi + 0x158], ecx
cmp dword [esi + 0x168], 0
je 0x45dd35
mov eax, dword [esi + 0x168]
push eax
call sub.KERNEL32.DLL_GlobalFree
xor edx, edx
mov dword [esi + 0x168], edx
or ecx, 0xffffffff
cmp dword [ebp - 0xc], 0
jne 0x45dd49
add ecx, 2
mov dword [esi + 0x3f9], ecx
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret