Function at 0x420bc0
Capabilities:
Enumerate pe sections

Disassembly:
push ebx
push esi
push edi
push ebp
push eax
mov eax, 0xd
add esp, 0xfffff004
push eax
dec eax
jne 0x420bca
mov eax, dword [esp + 0xd000]
add esp, 0xfffffbd4
mov edi, eax
lea esi, [esp + 0x7020]
lea ebp, [esp + 0xc30]
push 0x400
lea ecx, [esp + 0x434]
lea edx, [esp + 0x34]
mov eax, edi
call fcn.0042462c
test al, al
je 0x421878
xor eax, eax
xor edx, edx
mov dword [esp], eax
mov dword [esp + 4], edx
mov byte [esp + 8], 0
mov edx, edi
mov eax, ebp
call fcn.00407860
mov eax, esi
mov edx, edi
call fcn.00407860
lea ecx, [esp + 0x430]
lea edx, [esp + 0x30]
mov eax, ebp
call fcn.00402a18
mov byte [ebp + 0x11], 1
push 0
push 0
lea ecx, [esp + 0x11]
push ecx
push 0x80000000
push 0
push 0
mov ecx, str._recover.rar
mov edx, esi
mov eax, edi
call fcn.00403998
test al, al
jne 0x420d1d
cmp byte [esp + 9], 0
jne 0x420c86
mov edx, str._recover.rar
mov eax, 0x43d8fc
call fcn.004289a0
lea eax, [esi + 0x4abc]
mov edx, 2
call fcn.004022a0
lea eax, [esi + 0x3e48]
mov edx, 2
call fcn.004022a0
lea eax, [esi + 0x13b0]
mov edx, 2
call fcn.0042478c
lea eax, [esi + 0xe68]
mov edx, 2
call fcn.004022a0
mov eax, esi
xor edx, edx
call fcn.004028e4
lea eax, [ebp + 0x4abc]
mov edx, 2
call fcn.004022a0
lea eax, [ebp + 0x3e48]
mov edx, 2
call fcn.004022a0
lea eax, [ebp + 0x13b0]
mov edx, 2
call fcn.0042478c
lea eax, [ebp + 0xe68]
mov edx, 2
call fcn.004022a0
mov eax, ebp
xor edx, edx
call fcn.004028e4
jmp 0x421878
push str._recover.rar
mov eax, 0xdb0
call fcn.0040c264
push eax
call fcn.00422428
add esp, 8
mov edx, esi
mov eax, ebp
call fcn.00420249
mov ebx, eax
cmp ebx, 2
jne 0x420de7
mov eax, esi
call fcn.00402b68
lea eax, [esi + 0x4abc]
mov edx, 2
call fcn.004022a0
lea eax, [esi + 0x3e48]
mov edx, 2
call fcn.004022a0
lea eax, [esi + 0x13b0]
mov edx, 2
call fcn.0042478c
lea eax, [esi + 0xe68]
mov edx, 2
call fcn.004022a0
mov eax, esi
xor edx, edx
call fcn.004028e4
lea eax, [ebp + 0x4abc]
mov edx, 2
call fcn.004022a0
lea eax, [ebp + 0x3e48]
mov edx, 2
call fcn.004022a0
lea eax, [ebp + 0x13b0]
mov edx, 2
call fcn.0042478c
lea eax, [ebp + 0xe68]
mov edx, 2
call fcn.004022a0
mov eax, ebp
xor edx, edx
call fcn.004028e4
jmp 0x421878
cmp ebx, 1
jne 0x420ec2
mov eax, esi
call fcn.00402b68
cmp byte [edi + 0x18c8], 0
jne 0x420ec2
mov eax, 0xdc4
call fcn.0040c264
push eax
call fcn.00422468
pop ecx
mov eax, 0xbba
call fcn.0040c264
call fcn.0042272c
dec eax
je 0x420ec2
lea eax, [esi + 0x4abc]
mov edx, 2
call fcn.004022a0
lea eax, [esi + 0x3e48]
mov edx, 2
call fcn.004022a0
lea eax, [esi + 0x13b0]
mov edx, 2
call fcn.0042478c
lea eax, [esi + 0xe68]
mov edx, 2
call fcn.004022a0
mov eax, esi
xor edx, edx
call fcn.004028e4
lea eax, [ebp + 0x4abc]
mov edx, 2
call fcn.004022a0
lea eax, [ebp + 0x3e48]
mov edx, 2
call fcn.004022a0
lea eax, [ebp + 0x13b0]
mov edx, 2
call fcn.0042478c
lea eax, [ebp + 0xe68]
mov edx, 2
call fcn.004022a0
mov eax, ebp
xor edx, edx
call fcn.004028e4
jmp 0x421878
test ebx, ebx
jne 0x420ecd
mov eax, esi
call fcn.00402be0
push 0
push 0
mov eax, ebp
xor edx, edx
call fcn.00402f08
push 0
push 0
lea ecx, [esp + 0x11]
push ecx
push 0x80000000
push 0
push 0
mov ecx, str._reconst.rar
mov edx, esi
mov eax, edi
call fcn.00403998
test al, al
jne 0x420faf
cmp byte [esp + 9], 0
jne 0x420f18
mov edx, str._reconst.rar
mov eax, 0x43d8fc
call fcn.004289a0
lea eax, [esi + 0x4abc]
mov edx, 2
call fcn.004022a0
lea eax, [esi + 0x3e48]
mov edx, 2
call fcn.004022a0
lea eax, [esi + 0x13b0]
mov edx, 2
call fcn.0042478c
lea eax, [esi + 0xe68]
mov edx, 2
call fcn.004022a0
mov eax, esi
xor edx, edx
call fcn.004028e4
lea eax, [ebp + 0x4abc]
mov edx, 2
call fcn.004022a0
lea eax, [ebp + 0x3e48]
mov edx, 2
call fcn.004022a0
lea eax, [ebp + 0x13b0]
mov edx, 2
call fcn.0042478c
lea eax, [ebp + 0xe68]
mov edx, 2
call fcn.004022a0
mov eax, ebp
xor edx, edx
call fcn.004028e4
jmp 0x421878
mov eax, ebp
call fcn.004030f0
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
lea edx, [esp + 0x30]
mov eax, 0xdae
push edx
call fcn.0040c264
push eax
call fcn.00422428
add esp, 8
mov eax, 0xdb0
push str._reconst.rar
call fcn.0040c264
push eax
call fcn.00422428
add esp, 8
xor edx, edx
mov eax, ebp
mov byte [esp + 0x14], 0
call fcn.00407b10
test al, al
je 0x4210e0
mov byte [esp + 0x14], 1
mov cx, word [ebp + 0x3208]
mov word [esi + 0x3208], cx
mov ax, word [ebp + 0x320a]
mov word [esi + 0x320a], ax
cmp byte [ebp + 0x57c4], 0
je 0x4210e0
mov eax, 0xdb2
call fcn.0040c264
push eax
lea edx, [ebp + 0x15]
push edx
call fcn.004223b8
add esp, 8
lea eax, [esi + 0x4abc]
mov edx, 2
call fcn.004022a0
lea eax, [esi + 0x3e48]
mov edx, 2
call fcn.004022a0
lea eax, [esi + 0x13b0]
mov edx, 2
call fcn.0042478c
lea eax, [esi + 0xe68]
mov edx, 2
call fcn.004022a0
mov eax, esi
xor edx, edx
call fcn.004028e4
lea eax, [ebp + 0x4abc]
mov edx, 2
call fcn.004022a0
lea eax, [ebp + 0x3e48]
mov edx, 2
call fcn.004022a0
lea eax, [ebp + 0x13b0]
mov edx, 2
call fcn.0042478c
lea eax, [ebp + 0xe68]
mov edx, 2
call fcn.004022a0
mov eax, ebp
xor edx, edx
call fcn.004028e4
jmp 0x421878
xor ecx, ecx
mov eax, esi
mov dword [esi + 0x3214], ecx
mov edx, 0x72
mov word [esi + 0x3210], cx
and word [esi + 0x3208], 0xff9f
xor ecx, ecx
call fcn.00405f74
mov eax, esi
xor ecx, ecx
mov edx, 0x73
call fcn.00405f74
movzx eax, word [esi + 0x320a]
add eax, 0xfffffff3
cdq
push edx
push eax
mov edx, esi
mov eax, ebp
call fcn.00403200
push 0
push 0
mov eax, ebp
xor edx, edx
call fcn.00402f08
lea eax, [esp + 0xd410]
mov edx, 0x7918
call fcn.004032b4
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov eax, ebp
mov ecx, dword [esp + 0xd414]
mov edx, dword [esp + 0xd410]
call fcn.00402dcc
mov eax, dword [esp + 0xd414]
add eax, 0xfffffc18
cdq
add dword [esp + 0x20], eax
adc dword [esp + 0x24], edx
mov eax, dword [esp + 0xd414]
add eax, 0xfffffc18
cdq
push edx
push eax
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
call fcn.00433380
mov ebx, eax
xor eax, eax
add ebx, dword [esp + 0xd410]
xor ecx, ecx
xor edx, edx
mov al, byte [ebx + 2]
mov dword [esi + 0x321c], eax
mov cl, byte [ebx + 0x1b]
mov dl, byte [ebx + 0x1a]
shl ecx, 8
add dx, cx
mov word [esi + 0x323a], dx
cmp dword [esi + 0x321c], 0x74
jne 0x421690
cmp word [esi + 0x323a], 0
jbe 0x421690
cmp word [esi + 0x323a], 0x400
jae 0x421690
xor edx, edx
xor eax, eax
mov dl, byte [ebx + 1]
mov al, byte [ebx]
shl edx, 8
xor ecx, ecx
add ax, dx
xor edx, edx
mov word [esi + 0x3218], ax
xor eax, eax
mov al, byte [ebx + 4]
mov cl, byte [ebx + 3]
shl eax, 8
add cx, ax
xor eax, eax
mov word [esi + 0x3220], cx
xor ecx, ecx
mov cl, byte [ebx + 6]
mov dl, byte [ebx + 5]
shl ecx, 8
add dx, cx
xor ecx, ecx
mov word [esi + 0x3222], dx
xor edx, edx
mov dl, byte [ebx + 8]
mov al, byte [ebx + 7]
shl edx, 8
mov cl, byte [ebx + 9]
add eax, edx
xor edx, edx
mov dl, byte [ebx + 0xa]
shl ecx, 0x10
shl edx, 0x18
add eax, ecx
add eax, edx
xor ecx, ecx
mov dword [esi + 0x3224], eax
xor eax, eax
mov cl, byte [ebx + 0xc]
mov al, byte [ebx + 0xb]
shl ecx, 8
xor edx, edx
add eax, ecx
mov dl, byte [ebx + 0xd]
xor ecx, ecx
mov cl, byte [ebx + 0xe]
shl edx, 0x10
shl ecx, 0x18
add eax, edx
add eax, ecx
xor edx, edx
mov dword [esi + 0x3228], eax
xor ecx, ecx
mov al, byte [ebx + 0xf]
mov byte [esi + 0x322c], al
xor eax, eax
mov dl, byte [ebx + 0x11]
mov al, byte [ebx + 0x10]
shl edx, 8
mov cl, byte [ebx + 0x12]
add eax, edx
xor edx, edx
mov dl, byte [ebx + 0x13]
shl ecx, 0x10
shl edx, 0x18
add eax, ecx
add eax, edx
xor ecx, ecx
mov dword [esi + 0x3230], eax
xor eax, eax
mov cl, byte [ebx + 0x15]
mov al, byte [ebx + 0x14]
shl ecx, 8
xor edx, edx
add eax, ecx
mov dl, byte [ebx + 0x16]
xor ecx, ecx
mov cl, byte [ebx + 0x17]
shl edx, 0x10
shl ecx, 0x18
add eax, edx
add eax, ecx
xor ecx, ecx
mov dword [esi + 0x3234], eax
xor edx, edx
mov al, byte [ebx + 0x18]
mov byte [esi + 0x3238], al
mov al, byte [ebx + 0x19]
mov byte [esi + 0x3239], al
xor eax, eax
mov cl, byte [ebx + 0x1d]
mov dl, byte [ebx + 0x1c]
shl ecx, 8
mov al, byte [ebx + 0x1e]
add edx, ecx
xor ecx, ecx
mov cl, byte [ebx + 0x1f]
shl eax, 0x10
shl ecx, 0x18
add edx, eax
add edx, ecx
mov dword [esi + 0x323c], edx
test byte [esi + 0x3221], 1
je 0x42138c
xor eax, eax
xor edx, edx
mov al, byte [ebx + 0x21]
mov dl, byte [ebx + 0x20]
shl eax, 8
xor ecx, ecx
add edx, eax
mov cl, byte [ebx + 0x22]
xor eax, eax
mov al, byte [ebx + 0x23]
shl ecx, 0x10
shl eax, 0x18
add edx, ecx
add edx, eax
xor ecx, ecx
mov dword [esi + 0x3240], edx
xor edx, edx
mov cl, byte [ebx + 0x25]
mov dl, byte [ebx + 0x24]
shl ecx, 8
xor eax, eax
add edx, ecx
mov al, byte [ebx + 0x26]
xor ecx, ecx
mov cl, byte [ebx + 0x27]
shl eax, 0x10
shl ecx, 0x18
add edx, eax
add edx, ecx
mov dword [esi + 0x3244], edx
jmp 0x42139a
xor edx, edx
mov dword [esi + 0x3244], edx
mov dword [esi + 0x3240], edx
mov eax, dword [esi + 0x3240]
xor edx, edx
mov edx, eax
xor eax, eax
push edx
push eax
mov eax, dword [esi + 0x3224]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
mov dword [esi + 0x3e5c], eax
mov dword [esi + 0x3e60], edx
mov eax, dword [esi + 0x3244]
xor edx, edx
mov edx, eax
xor eax, eax
push edx
push eax
mov eax, dword [esi + 0x3228]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
mov dword [esi + 0x3e64], eax
mov dword [esi + 0x3e68], edx
movzx ecx, word [esi + 0x323a]
push ecx
mov eax, esi
call fcn.00408efc
add eax, ebx
push eax
lea edx, [esi + 0x3248]
push edx
call fcn.00430150
add esp, 0xc
test byte [esi + 0x3221], 2
je 0x421468
lea eax, [esp + 0xd41c]
call fcn.0040bdc8
lea edx, [esi + 0x3248]
push edx
call fcn.00430370
pop ecx
inc eax
movzx ecx, word [esi + 0x323a]
sub ecx, eax
lea edx, [esi + 0x3648]
push ecx
lea ecx, [esi + 0x3248]
push edx
push 0x400
add ecx, eax
lea eax, [esp + 0xd428]
lea edx, [esi + 0x3248]
call fcn.0040c040
jmp 0x421471
mov word [esi + 0x3648], 0
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
sub eax, dword [esp + 0x18]
sbb edx, dword [esp + 0x1c]
push edx
push eax
mov eax, esi
call fcn.00408efc
cdq
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
movzx eax, word [esi + 0x323a]
cdq
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
mov eax, dword [esi + 0x3224]
xor edx, edx
cmp edx, dword [esp + 4]
jne 0x4214c0
cmp eax, dword [esp]
pop edx
pop eax
jbe 0x42151b
jmp 0x4214c4
pop edx
pop eax
jle 0x42151b
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
sub eax, dword [esp + 0x18]
sbb edx, dword [esp + 0x1c]
push edx
push eax
mov eax, esi
call fcn.00408efc
cdq
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
movzx eax, word [esi + 0x323a]
cdq
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x28]
mov dword [esi + 0x3224], eax
mov eax, dword [esp + 0x2c]
mov edx, eax
mov dword [esi + 0x3240], eax
sar edx, 0x1f
mov eax, esi
call fcn.00408efc
mov ecx, eax
movzx edx, word [esi + 0x323a]
add ecx, edx
add ecx, 0xfffffffe
lea edx, [ebx + 2]
or eax, 0xffffffff
call fcn.00409ab4
not ax
and ax, 0xffff
lea ecx, [esp + 8]
mov word [esi + 0x57d6], ax
mov eax, edi
mov edx, esi
call fcn.004200e0
test al, al
je 0x421690
test byte [esi + 0x3220], 8
mov bl, 1
je 0x4215c7
mov eax, esi
call fcn.00408efc
cdq
push edx
push eax
movzx eax, word [esi + 0x323a]
cdq
add eax, dword [esp + 0x20]
adc edx, dword [esp + 0x24]
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, ebp
xor edx, edx
call fcn.00402f08
mov eax, ebp
call fcn.00407fac
mov eax, esi
call fcn.00408efc
movzx edx, word [esi + 0x323a]
add eax, edx
movzx ecx, word [ebp + 0x4aea]
add eax, ecx
movzx edx, word [esi + 0x3222]
cmp eax, edx
je 0x4215e2
xor ebx, ebx
jmp 0x4215e2
movzx eax, word [esi + 0x3222]
cdq
add eax, dword [esp + 0x18]
adc edx, dword [esp + 0x1c]
push edx
push eax
mov eax, ebp
xor edx, edx
call fcn.00402f08
movzx ecx, word [esi + 0x323a]
mov byte [esi + ecx + 0x3248], 0
call fcn.004096f8
test bl, bl
je 0x421690
cmp word [esi + 0x3648], 0
jne 0x421615
lea eax, [esi + 0x3248]
mov dl, 1
call fcn.00401e78
movzx ecx, word [esi + 0x3220]
or dword [esp + 4], ecx
lea eax, [esi + 0x3248]
call fcn.004016a4
push eax
mov eax, 0xdb4
call fcn.0040c264
push eax
call fcn.00422428
add esp, 8
mov eax, esi
mov edx, 0x74
inc dword [esp]
xor ecx, ecx
call fcn.00405f74
test byte [esi + 0x3220], 8
je 0x42167d
mov eax, esi
xor ecx, ecx
mov edx, 0x75
call fcn.00405f74
movzx eax, word [ebp + 0x4aea]
add eax, 0xfffffff3
cdq
push edx
push eax
mov edx, esi
mov eax, ebp
call fcn.00403200
mov eax, dword [esi + 0x3224]
xor edx, edx
push edx
push eax
mov edx, esi
mov eax, ebp
call fcn.00403200
add dword [esp + 0x18], 1
adc dword [esp + 0x1c], 0
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
push edx
push eax
mov eax, esi
call fcn.00408efc
cdq
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
cmp edx, dword [esp + 0x1c]
jne 0x4216c3
cmp eax, dword [esp + 0x18]
ja 0x4216c5
jmp 0x42172b
jle 0x42172b
mov eax, dword [esp + 0xd414]
add eax, 0xfffffc18
cdq
push edx
push eax
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
call fcn.00433380
cmp edx, 0
jne 0x421192
cmp eax, 0
jne 0x421192
push dword [esp + 0x24]
push dword [esp + 0x24]
mov eax, ebp
xor edx, edx
call fcn.00402f08
mov eax, ebp
mov ecx, dword [esp + 0xd414]
mov edx, dword [esp + 0xd410]
call fcn.00402dcc
add dword [esp + 0x20], 0x7530
adc dword [esp + 0x24], 0
jmp 0x421192
test byte [esp + 4], 3
je 0x42173a
or word [esi + 0x3208], 1
cmp dword [esp], 0
jle 0x42177b
cmp byte [esp + 0x14], 0
jne 0x42177b
cmp byte [edi + 0x18c8], 0
jne 0x42177b
mov eax, 0xdb6
call fcn.0040c264
push eax
call fcn.00422468
pop ecx
mov eax, 0xbba
call fcn.0040c264
call fcn.0042272c
dec eax
jne 0x42177b
or word [esi + 0x3208], 8
cmp dword [esp], 0
jne 0x421794
mov eax, 0xdb8
call fcn.0040c264
push eax
call fcn.00422428
pop ecx
jmp 0x4217d5
push 0
push 0
mov eax, esi
xor edx, edx
call fcn.00402f08
mov eax, esi
xor ecx, ecx
mov edx, 0x72
call fcn.00405f74
mov eax, esi
xor ecx, ecx
mov edx, 0x73
call fcn.00405f74
mov eax, esi
call fcn.00402b68
mov eax, 0xcea
call fcn.0040c264
push eax
call fcn.00422428
pop ecx
lea eax, [esp + 0xd410]
mov edx, 2
call fcn.00401244
lea eax, [esi + 0x4abc]
mov edx, 2
call fcn.004022a0
lea eax, [esi + 0x3e48]
mov edx, 2
call fcn.004022a0
lea eax, [esi + 0x13b0]
mov edx, 2
call fcn.0042478c
lea eax, [esi + 0xe68]
mov edx, 2
call fcn.004022a0
mov eax, esi
xor edx, edx
call fcn.004028e4
lea eax, [ebp + 0x4abc]
mov edx, 2
call fcn.004022a0
lea eax, [ebp + 0x3e48]
mov edx, 2
call fcn.004022a0
lea eax, [ebp + 0x13b0]
mov edx, 2
call fcn.0042478c
lea eax, [ebp + 0xe68]
mov edx, 2
call fcn.004022a0
mov eax, ebp
xor edx, edx
call fcn.004028e4
add esp, 0xd430
pop ebp
pop edi
pop esi
pop ebx
ret