Function at 0x476a40
Capabilities:
Enumerate pe sections
Get file size

Disassembly:
sub esp, 0xb0
push ebx
push ebp
xor eax, eax
mov ebp, ecx
mov dword [esp + 0x14], eax
xor ebx, ebx
push esi
mov dword [esp + 0x1c], eax
mov dword [ebp + 0x4e510], ebx
mov ecx, dword [ebp + 0x4a258]
push edi
mov dword [esp + 0x24], eax
call fcn.00482630
mov word [ebp + 0x4dd88], bx
push 7
mov ecx, ebp
mov dword [ebp + 0x4dd84], ebx
call fcn.00432950
push 0xb
mov ecx, ebp
call fcn.00432950
push 0xd
mov ecx, ebp
call fcn.00432950
push 0xe
mov ecx, ebp
call fcn.00432950
push 0x10
mov ecx, ebp
call fcn.00432950
push 0x16
mov ecx, ebp
call fcn.00432950
push 0x14
mov ecx, ebp
call fcn.00432950
push 0x15
mov ecx, ebp
call fcn.00432950
push 0x17
mov ecx, ebp
call fcn.00432950
lea ecx, [esp + 0x10]
mov byte [ebp + 0x4ea55], bl
push ecx
lea ecx, [ebp + 0x4e26c]
mov byte [ebp + 0x4ebfe], bl
mov dword [esp + 0x14], ebx
call fcn.00491a40
lea edx, [esp + 0x10]
mov dword [ebp + 0x4e590], 0xffffffff
mov dword [ebp + 0x4e5c4], ebx
push edx
lea ecx, [ebp + 0x4e4e8]
mov byte [ebp + 0x4ebef], bl
mov dword [esp + 0x14], ebx
call fcn.00491a40
lea eax, [esp + 0x10]
lea ecx, [ebp + 0x4e484]
push eax
mov dword [ebp + 0x4e4bc], ebx
mov dword [esp + 0x14], ebx
call fcn.00491a40
lea ecx, [esp + 0x10]
mov dword [esp + 0x10], ebx
push ecx
lea ecx, [ebp + 0x4e490]
call fcn.00491a40
mov byte [ebp + 0x4e82f], 0xff
mov dword [ebp + 0x4dd64], ebx
lea esi, [ebp + 0x4ab88]
mov edi, 0x12c
mov ecx, dword [esi]
cmp ecx, ebx
je 0x476b67
mov edx, dword [ecx]
push 1
call dword [edx]
mov dword [esi], ebx
add esi, 4
dec edi
jne 0x476b5b
lea eax, [ebp + 0x30fa]
mov ecx, 0x258
mov word [eax - 2], bx
mov word [eax], bx
mov byte [eax + 2], 0
add eax, 6
dec ecx
jne 0x476b7a
lea edx, [ebp + 0x4714]
mov esi, 0x64
lea ecx, [edx + 4]
mov dword [edx - 4], ebx
xor eax, eax
mov dword [edx], 0xffffffff
mov dword [ecx], eax
lea edi, [edx + 0x10]
add edx, 0x2c
dec esi
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, 6
rep stosd dword es:[edi], eax
jne 0x476b96
lea esi, [ebp + 0x4a264]
mov edi, 0x1f4
mov ecx, dword [esi]
cmp ecx, ebx
je 0x476bd3
mov edx, dword [ecx]
push 1
call dword [edx]
mov dword [esi], ebx
add esi, 4
dec edi
jne 0x476bc7
mov eax, dword [esp + 0xc4]
lea esi, [ebp + 0x4ea33]
mov edi, esi
push esi
mov cx, word [eax + 6]
lea ebx, [eax + 6]
add ebx, 2
mov word [ebp + 0x4e666], cx
mov dx, word [ebx]
mov ax, word [ebx + 2]
add ebx, 2
mov word [esp + 0x1c], dx
add ebx, 2
mov word [esp + 0x18], ax
mov cx, word [ebx]
add ebx, 2
mov word [ebp + 0x4e668], cx
mov dx, word [ebx]
add ebx, 2
mov word [ebp + 0x4e66a], dx
mov ax, word [ebx]
add ebx, 2
mov word [ebp + 0x4e66c], ax
mov cx, word [ebx]
add ebx, 2
mov word [ebp + 0x4e66e], cx
mov dx, word [ebx]
add ebx, 2
mov word [ebp + 0x4e670], dx
lea edx, [ebp + 0x4ea27]
mov eax, dword [ebx]
add ebx, 4
mov dword [ebp + 0x4e528], eax
xor eax, eax
mov cx, word [ebx]
add ebx, 2
mov word [ebp + 0x4e672], cx
mov ecx, edx
push edx
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, 8
rep stosd dword es:[edi], eax
mov eax, ebx
mov ecx, edx
mov edi, dword [eax]
mov dword [ecx], edi
mov edi, dword [eax + 4]
mov dword [ecx + 4], edi
mov ax, word [eax + 8]
mov word [ecx + 8], ax
mov ecx, ebp
call fcn.00451530
test al, al
mov byte [ebp + 0x4ea53], al
jge 0x476cb2
or eax, 0xffffffff
jmp 0x476cb7
mov eax, 0x80
lea edx, [ebp + 0x4e9f9]
mov word [ebp + 0x808], ax
mov word [ebp + 0x80a], ax
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
add ebx, 0xa
lea esi, [esp + 0x1c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x10], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov ecx, ebx
add ebx, 0xa
mov eax, dword [ecx]
inc ebx
mov dword [edx], eax
inc ebx
mov eax, dword [ecx + 4]
add ebx, 4
mov dword [edx + 4], eax
add ebx, 5
mov cx, word [ecx + 8]
push ebx
mov word [edx + 8], cx
mov dl, byte [ebx - 0xb]
mov byte [0x553868], dl
mov al, byte [ebx - 0xa]
mov byte [ebp + 0x4ebee], al
mov ecx, dword [ebx - 9]
mov dword [ebp + 0x4e578], ecx
lea ecx, [ebp + 0x4e52c]
movsx edx, byte [ebx - 5]
mov dword [esp + 0x14], edx
call fcn.00491a40
mov al, byte [ebx + 4]
add ebx, 4
mov byte [ebp + 0x4ec00], al
mov al, byte [ebp + 0x4ebee]
inc ebx
test al, al
je 0x476d6d
push eax
push 1
jmp 0x476d71
push 0
push 0
mov ecx, ebp
call fcn.0043d590
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x28]
lea edx, [esp + 0x28]
rep stosd dword es:[edi], eax
or ecx, 0xffffffff
mov edi, 0x4af714
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x28]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp + 0x4ea27]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x28]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x4af70c
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x28]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x4a258]
call fcn.00482760
mov ecx, dword [ebp + 0x4a258]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov word [ecx + 0x934460], si
mov edx, dword [ebp + 0x4a258]
lea eax, [esi + 0x13]
lea ecx, [edi + 0x11]
mov word [edx + 0x934462], di
mov edx, dword [esp + 0x10]
test edx, edx
mov word [ebp + 0x4e662], ax
mov word [ebp + 0x4e664], cx
mov byte [ebp + 0x4e924], 5
jne 0x476ec5
push 0
push 0
push 0
push 0
push 0
lea edx, [ebp + 0x4e918]
push 0
push edx
mov dx, word [ebp + 0x4e672]
push edx
mov edx, dword [ebp + 0x4e528]
push edx
mov dx, word [ebp + 0x4e670]
push edx
mov dx, word [ebp + 0x4e66e]
push edx
mov dx, word [ebp + 0x4e66c]
push edx
mov dx, word [ebp + 0x4e66a]
push edx
push 5
movsx edx, word [ebp + 0x4e668]
push edx
movsx ecx, cx
movsx edx, ax
push ecx
mov ecx, dword [ebp + 0x4a258]
push edx
mov dx, word [ebp + 0x4e666]
call fcn.00482da0
lea ecx, [esi + 9]
lea edx, [edi + 0xa]
mov eax, ecx
push ebx
shl eax, 5
mov word [ebp + 0x4e692], ax
mov word [ebp + 0x4e68e], ax
mov eax, edx
push edx
shl eax, 5
push ecx
mov ecx, ebp
mov word [ebp + 0x4e694], ax
mov word [ebp + 0x4e690], ax
call fcn.00428db0
lea eax, [ebp + 0x4ea33]
mov dword [ebp + 0x4e4c0], 1
push eax
lea eax, [esp + 0x4c]
push 0x4af700
push eax
call dword [sym.imp.user32.dll_wsprintfA]
add esp, 0xc
lea ecx, [esp + 0x48]
push 1
push 0xa
push ecx
mov ecx, ebp
call fcn.0040fba0
lea ebx, [ebp + 0x4e9f9]
mov ecx, 5
mov edi, 0x4a71ec
mov esi, ebx
xor edx, edx
mov word [ebp + 0x57c], 0x96
mov word [ebp + 0x57e], 0x82
repe cmpsw word [esi], word es:[edi]
je 0x476f7e
mov ecx, 5
mov edi, 0x4aacc4
mov esi, ebx
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x476f7e
mov ecx, 9
mov edi, 0x4aabd0
mov esi, ebx
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x476f8f
push 0
push 0
push 0
push 0
push 6
mov ecx, ebp
call fcn.00431bf0
lea eax, [ebp + 0x4e9ed]
mov ecx, 3
mov edi, eax
lea esi, [esp + 0x1c]
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
sete dl
mov edi, eax
mov ecx, 3
mov esi, ebx
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
sete al
mov esi, ebx
mov ecx, 3
mov edi, 0x4af6fc
xor ebx, ebx
repe cmpsb byte [esi], byte es:[edi]
jne 0x476fce
mov eax, 1
mov ecx, dword [ebp + 0x4e580]
xor ebx, ebx
cmp ecx, ebx
je 0x476fdc
xor eax, eax
cmp edx, ebx
je 0x476ffc
cmp eax, ebx
jne 0x477046
lea edx, [ebp + 0x4ec0d]
mov ecx, 0x10
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, 0x4af6c0
jmp 0x477016
cmp eax, ebx
je 0x477046
lea edx, [ebp + 0x4ec0d]
mov ecx, 0x10
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, 0x4af6a8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x4dd34]
mov byte [ebp + 0x4e618], 5
mov dword [ebp + 0x4dd7c], ecx
mov edx, dword [ebp + 0x4dd34]
lea ecx, [ebp + 0x6004]
mov byte [ebp + 0x4e830], 4
mov byte [ebp + 0x4e7e3], 0
mov dword [ebp + 0x4dd40], edx
call fcn.00401fc0
test byte [ebp + 0x4e66d], 0xf0
je 0x477080
mov dword [ebp + 0x4e47c], 1
jmp 0x477086
mov dword [ebp + 0x4e47c], ebx
cmp dword [ebp + 0x4e4b8], 1
jne 0x4770da
push ebx
push ebx
push 3
push ebx
push ebx
push connect
push 0x4a665c
mov dword [ebp + 0x4e4b8], ebx
call dword [sym.imp.kernel32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x4770b6
xor edi, edi
jmp 0x4770c7
push ebx
push esi
call dword [sym.imp.kernel32.dll_GetFileSize]
push esi
mov edi, eax
call dword [sym.imp.kernel32.dll_CloseHandle]
push ebx
push ebx
push ebx
push ebx
push edi
push ebx
push ebx
push 0x220b2f00
mov ecx, ebp
call fcn.00404de0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret 4