Function at 0x1003043f
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x100d7640
call fcn.100d39f0
sub esp, 0x94
push ebx
push esi
mov ebx, ecx
push edi
xor esi, esi
xor edi, edi
cmp byte [ebx + 0x1a8], 0
je 0x10030487
mov ecx, dword [ebp + 8]
push 0x14
lea edx, [ebp - 0x4c]
call fcn.1006dc5d
cmp eax, esi
jne 0x10030c17
lea eax, [ebp - 0x4c]
lea ecx, [ebx + 0x20]
push eax
call fcn.10030388
jmp 0x10030509
mov ecx, dword [ebp + 8]
push 0x40
lea edx, [ebp - 0xa0]
call fcn.1006dc5d
cmp eax, esi
jne 0x10030c17
cmp byte [ebp - 0xa0], 0x4d
jne 0x10030c14
cmp byte [ebp - 0x9f], 0x5a
jne 0x10030c14
mov eax, dword [ebp - 0x64]
cmp eax, 0x40
jb 0x10030c14
cmp eax, 0x1000
ja 0x10030c14
mov ecx, dword [ebp + 8]
push esi
push esi
push esi
mov edx, dword [ecx]
push eax
push ecx
lea edi, [eax + 4]
call dword [edx + 0x10]
cmp eax, esi
jne 0x10030c17
mov ecx, dword [ebp + 8]
push 0x18
lea edx, [ebp - 0x50]
call fcn.1006dc5d
cmp eax, esi
jne 0x10030c17
lea eax, [ebp - 0x50]
lea ecx, [ebx + 0x20]
push eax
call fcn.1002e105
test al, al
je 0x10030c14
movzx eax, word [ebx + 0x22]
movzx edx, word [ebx + 0x30]
lea eax, [eax + eax*4]
lea ecx, [edi + 0x14]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x38], esi
lea edi, [edx + eax*8]
mov dword [ebp - 0x34], esi
push edi
lea eax, [edi + ecx]
mov dword [ebx + 0x34], eax
call fcn.1006dc5d
pop ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edi
mov ecx, dword [ebp + 8]
push edi
mov edx, eax
mov dword [ebp - 4], esi
call fcn.1006dc5d
cmp eax, esi
jne 0x100306e0
mov ax, word [ebx + 0x30]
cmp ax, si
je 0x10030577
movzx eax, ax
push eax
lea ecx, [ebx + 0xc0]
push dword [ebp - 0x38]
call fcn.1002e12f
test al, al
je 0x10030784
movzx eax, word [ebx + 0x30]
cmp word [ebx + 0x22], si
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], esi
jbe 0x10030606
lea ecx, [ebx + 0x14]
call fcn.1003270a
mov ecx, dword [ebp - 0x14]
mov edi, eax
mov eax, dword [ebp - 0x38]
add ecx, eax
push ecx
mov ecx, edi
call fcn.1002e2a7
cmp dword [ebp - 0x10], esi
mov byte [edi + 0x24], 1
jbe 0x100305d8
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x10]
mov edx, dword [edi + 0x18]
mov eax, dword [eax + ecx*4 - 4]
mov dword [ebp - 0x18], edx
mov ecx, dword [eax + 0x18]
cmp ecx, edx
jae 0x100305d8
mov edx, dword [eax + 0x14]
add edx, ecx
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
jbe 0x100305d8
cmp dword [edi + 0x14], esi
jbe 0x100305d8
sub ecx, dword [eax + 0x18]
mov dword [eax + 0x14], ecx
push 0x18
pop eax
cmp dword [edi + 0xc], eax
jne 0x100305f6
cmp dword [edi + 0x14], 0x200
jne 0x100305f6
movzx ecx, word [ebx + 0x22]
dec ecx
cmp dword [ebp - 0x10], ecx
jne 0x100305f6
mov dword [edi + 0x14], eax
movzx eax, word [ebx + 0x22]
inc dword [ebp - 0x10]
add dword [ebp - 0x14], 0x28
cmp dword [ebp - 0x10], eax
jb 0x10030587
xor edx, edx
cmp dword [ebx + 0x18], esi
jbe 0x10030627
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx + 0x18]
add eax, dword [ecx + 0x14]
cmp dword [ebx + 0x34], eax
jae 0x10030621
mov dword [ebx + 0x34], eax
inc edx
cmp edx, dword [ebx + 0x18]
jb 0x1003060d
and byte [ebp - 0x19], 0
cmp word [ebx + 0x30], si
je 0x1003071e
lea eax, [ebp - 0x19]
mov ecx, ebx
push eax
push dword [ebp + 8]
call fcn.1002eca2
cmp eax, esi
jne 0x100306e0
cmp dword [ebx + 0x148], esi
je 0x1003068c
lea ecx, [ebx + 0x14]
call fcn.1003270a
mov edi, eax
push str.CERTIFICATE
mov ecx, edi
call fcn.1006dc5d
mov dword [edi + 0x10], esi
mov eax, dword [ebx + 0x144]
mov dword [edi + 0x18], eax
mov eax, dword [ebx + 0x148]
mov dword [edi + 0xc], eax
mov dword [edi + 0x14], eax
add eax, dword [edi + 0x18]
cmp dword [ebx + 0x34], eax
jae 0x1003068c
mov dword [ebx + 0x34], eax
cmp byte [ebp - 0x19], 0
je 0x1003071e
mov ecx, dword [ebx + 0x34]
mov eax, ecx
and eax, 0xfff
je 0x1003071e
mov edi, 0x1000
push esi
sub edi, eax
mov eax, dword [ebp + 8]
push esi
push esi
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x10]
cmp eax, esi
jne 0x100306e0
push 0x1000
lea ecx, [ebp - 0x38]
call fcn.1000446d
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], edx
push eax
mov dword [ebp - 0x18], edi
call fcn.1006dc5d
cmp eax, esi
je 0x100306e7
mov esi, eax
jmp 0x10030c07
mov ecx, dword [ebp - 0x18]
xor eax, eax
cmp ecx, esi
jbe 0x100306fe
mov edx, dword [ebp - 0x14]
cmp byte [eax + edx], 0
jne 0x100306fe
inc eax
cmp eax, ecx
jb 0x100306f0
cmp ecx, edi
jae 0x1003070c
cmp ecx, 0x64
jae 0x1003070c
add dword [ebx + 0x34], ecx
jmp 0x1003071e
mov edx, dword [ebx + 0x34]
add eax, edx
test ax, 0x1ff
je 0x1003071b
cmp ecx, edi
jae 0x1003071e
mov dword [ebx + 0x34], eax
mov eax, dword [ebx + 0x2c]
cmp eax, esi
jbe 0x100307c4
mov ecx, dword [ebx + 0x28]
cmp ecx, dword [ebp - 0x20]
jb 0x100307c4
cmp eax, 0x1000000
jae 0x10030784
lea eax, [eax + eax*8]
mov edx, dword [ebp + 8]
shl eax, 1
push esi
push esi
mov dword [ebp - 0x14], eax
mov edx, dword [edx]
xor esi, esi
xor edi, edi
add eax, ecx
adc esi, edi
push esi
push eax
push dword [ebp + 8]
call dword [edx + 0x10]
xor esi, esi
cmp eax, esi
jne 0x100306e0
mov ecx, dword [ebp + 8]
push 4
lea edx, [ebp - 0x18]
call fcn.1006dc5d
cmp eax, esi
jne 0x100306e0
mov eax, dword [ebp - 0x18]
cmp eax, 0x10000000
jb 0x1003078c
push 1
pop esi
jmp 0x10030c07
add dword [ebp - 0x14], eax
lea ecx, [ebx + 0x14]
call fcn.1003270a
mov edi, eax
push str.COFF_SYMBOLS
mov ecx, edi
call fcn.1006dc5d
mov dword [edi + 0x10], esi
mov eax, dword [ebx + 0x28]
mov dword [edi + 0x18], eax
mov eax, dword [ebp - 0x14]
mov dword [edi + 0xc], eax
mov dword [edi + 0x14], eax
mov edi, dword [edi + 0x18]
add edi, eax
cmp dword [ebx + 0x34], edi
jae 0x100307c4
mov dword [ebx + 0x34], edi
lea eax, [ebx + 0x14]
lea ecx, [ebp - 0x30]
push eax
call fcn.1003262b
push esi
push 0x1003294b
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 1
call fcn.1002ddb8
xor eax, eax
cmp dword [ebp - 0x2c], esi
mov dword [ebp - 0x10], 0x1000
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], eax
jbe 0x1003086b
mov ecx, dword [ebp - 0x30]
mov edi, dword [ecx + eax*4]
mov eax, dword [edi + 0x18]
cmp eax, dword [ebp - 0x10]
jbe 0x1003084e
lea ecx, [ebx + 0x14]
call fcn.1003270a
mov ecx, dword [ebp - 0x10]
mov esi, eax
push 0x5b
mov dword [esi + 0x10], ecx
mov dword [esi + 0x18], ecx
mov eax, dword [edi + 0x18]
mov byte [esi + 0x26], 1
sub eax, ecx
mov ecx, esi
mov dword [esi + 0xc], eax
mov dword [esi + 0x14], eax
call fcn.10001db6
mov eax, dword [ebp - 0x14]
inc dword [ebp - 0x14]
push eax
mov ecx, esi
call fcn.10001fce
push 0x5d
mov ecx, esi
call fcn.10001f08
mov eax, dword [edi + 0x18]
xor esi, esi
mov dword [ebp - 0x10], eax
mov edi, dword [edi + 0x14]
add edi, eax
cmp edi, eax
jb 0x1003086b
cmp edi, dword [ebp - 0x10]
jb 0x1003085f
mov dword [ebp - 0x10], edi
mov eax, dword [ebp - 0x18]
inc eax
cmp eax, dword [ebp - 0x2c]
mov dword [ebp - 0x18], eax
jb 0x100307f6
and byte [ebp - 4], 0
lea ecx, [ebp - 0x30]
call fcn.100045be
cmp word [ebx + 0x30], si
je 0x100308ce
cmp dword [ebx + 0xf4], esi
je 0x100308ce
mov edi, dword [ebp + 8]
push esi
push esi
push esi
mov eax, dword [edi]
push esi
push edi
call dword [eax + 0x10]
cmp eax, esi
jne 0x100306e0
mov edx, dword [ebx + 0x34]
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x20]
add eax, 0x40
mov ecx, edi
push eax
mov dword [ebp - 0x18], esi
call fcn.1006dc5d
cmp eax, esi
jne 0x100306e0
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebx + 0xf4]
setne al
mov byte [ebx + 0xbc], al
jmp 0x100308d1
mov edi, dword [ebp + 8]
cmp byte [ebx + 0x1a9], 0
jne 0x1003090d
mov eax, dword [edi]
lea ecx, [ebp - 0x2c]
push ecx
push 2
push esi
push esi
push edi
call dword [eax + 0x10]
cmp eax, esi
jne 0x100306e0
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x34]
xor ecx, ecx
cmp edx, ecx
jb 0x1003090d
ja 0x10030784
mov ecx, dword [ebp - 0x2c]
cmp ecx, eax
ja 0x10030784
cmp dword [ebx + 0x18], esi
mov byte [ebp - 0x1a], 1
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x10], esi
jbe 0x10030b01
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x10]
cmp word [ebx + 0x30], 0
mov esi, dword [eax + ecx*4]
je 0x10030a54
cmp byte [ebp - 0x1a], 0
je 0x10030a54
mov eax, dword [esi]
push str..rsrc
push eax
call sub.msvcrt.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x10030a54
push dword [ebp + 0xc]
and byte [ebp - 0x1a], al
mov edi, dword [ebx + 0x40]
mov ecx, ebx
push dword [ebp + 8]
push dword [ebp - 0x10]
call fcn.1002f5fb
test eax, eax
jne 0x10030a41
push dword [esi]
lea edi, [ebx + 0xa8]
mov ecx, edi
call fcn.1006dc5d
push 0x5c
mov ecx, edi
call fcn.100027bc
xor eax, eax
cmp dword [ebx + 0x4c], eax
mov dword [ebp - 0x14], eax
jbe 0x10030ac4
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 0x48]
add eax, dword [ebp - 0x18]
cmp byte [eax + 0x2e], 0
je 0x10030a29
mov ecx, dword [ebp - 0x10]
or dword [ebp - 0x58], 0xffffffff
or dword [ebp - 0x54], 0xffffffff
mov dword [ebp - 0x60], ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x5c], ecx
mov ecx, dword [eax]
cmp ecx, 0xa
je 0x100309d1
cmp ecx, 0x40
jbe 0x10030a0d
mov edx, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
xor ecx, ecx
cmp ecx, edx
jb 0x100309fb
ja 0x100309e4
cmp eax, dword [ebp - 0x2c]
jb 0x100309fb
mov esi, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 0x40]
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x28], ecx
mov dword [ebx + 0x38], eax
jmp 0x10030a0d
cmp ecx, dword [ebp - 0x20]
jb 0x10030a0d
ja 0x10030a07
cmp eax, dword [ebp - 0x24]
jb 0x10030a0d
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], ecx
lea esi, [ebx + 0x3c]
mov ecx, esi
call fcn.10032994
mov edi, dword [esi + 4]
shl edi, 4
add edi, dword [esi]
lea esi, [ebp - 0x60]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
inc dword [ebx + 0x40]
inc dword [ebp - 0x14]
add dword [ebp - 0x18], 0x30
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebx + 0x4c]
jb 0x100309a5
jmp 0x10030ac4
cmp eax, 1
jne 0x100306e0
mov ecx, ebx
mov dword [ebx + 0x40], edi
call fcn.10030e06
cmp byte [esi + 0x26], 0
je 0x10030a96
mov ecx, dword [ebp - 0x28]
mov esi, dword [esi + 0x14]
xor eax, eax
cmp eax, ecx
jb 0x10030a84
ja 0x10030a6d
cmp esi, dword [ebp - 0x2c]
jb 0x10030a84
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0x40]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x2c], esi
mov dword [ebx + 0x38], eax
jmp 0x10030a96
cmp eax, dword [ebp - 0x20]
jb 0x10030a96
ja 0x10030a90
cmp esi, dword [ebp - 0x24]
jb 0x10030a96
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x10]
or dword [ebp - 0x44], 0xffffffff
or dword [ebp - 0x40], 0xffffffff
or dword [ebp - 0x3c], 0xffffffff
lea esi, [ebx + 0x3c]
mov dword [ebp - 0x48], eax
mov ecx, esi
call fcn.10032994
mov edi, dword [esi + 4]
shl edi, 4
add edi, dword [esi]
lea esi, [ebp - 0x48]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
inc dword [ebx + 0x40]
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebx + 0x18]
jb 0x10030929
cmp dword [ebp - 0x20], 0
ja 0x10030ae2
cmp dword [ebp - 0x24], 0x100000
jb 0x10030b01
push 0
push 2
push dword [ebp - 0x20]
push dword [ebp - 0x24]
call fcn.100d3b80
cmp dword [ebp - 0x28], edx
ja 0x10030b01
jb 0x10030afd
cmp dword [ebp - 0x2c], eax
jae 0x10030b01
or dword [ebx + 0x38], 0xffffffff
xor edi, edi
xor esi, esi
cmp dword [ebx + 0x40], edi
jbe 0x10030b44
mov eax, edi
add eax, dword [ebx + 0x3c]
cmp dword [eax + 8], 0
jge 0x10030b36
cmp dword [eax + 4], 0
jge 0x10030b36
mov eax, dword [eax]
mov ecx, dword [ebx + 0x14]
push str._winzip_
mov eax, dword [ecx + eax*4]
mov eax, dword [eax]
push eax
call sub.msvcrt.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x10030b41
inc esi
add edi, 0x10
cmp esi, dword [ebx + 0x40]
jb 0x10030b0a
jmp 0x10030b44
mov dword [ebx + 0x38], esi
xor esi, esi
cmp dword [ebx + 0x94], esi
jbe 0x10030b8e
test esi, esi
je 0x10030b5a
lea ecx, [ebx + 0x6c]
call fcn.100027ea
mov eax, dword [ebx + 0x90]
lea ecx, [ebx + 0x6c]
mov edi, dword [eax + esi*4]
push edi
call fcn.1000285d
push 0x100e488c
lea ecx, [ebx + 0x6c]
call fcn.1006dc5d
add edi, 0xc
lea ecx, [ebx + 0x6c]
push edi
call fcn.1000285d
inc esi
cmp esi, dword [ebx + 0x94]
jb 0x10030b4e
lea esi, [ebx + 0x90]
mov edx, 0x100e4878
mov ecx, esi
call fcn.10030d7b
test eax, eax
jl 0x10030bb8
mov ecx, dword [esi]
mov eax, dword [ecx + eax*4]
lea ecx, [ebx + 0x84]
add eax, 0xc
push eax
call fcn.1000264a
mov edx, 0x100e4868
mov ecx, esi
call fcn.10030d7b
test eax, eax
jl 0x10030bd9
mov ecx, dword [esi]
mov eax, dword [ecx + eax*4]
lea ecx, [ebx + 0x78]
add eax, 0xc
push eax
call fcn.1000264a
mov edx, 0x100e485c
mov ecx, esi
call fcn.10030d7b
mov edi, eax
test edi, edi
jl 0x10030c05
add ebx, 0x78
mov ecx, ebx
call fcn.100027b4
mov eax, dword [esi]
mov ecx, ebx
mov eax, dword [eax + edi*4]
add eax, 0xc
push eax
call fcn.1000285d
xor esi, esi
push dword [ebp - 0x38]
call fcn.10003419
pop ecx
mov eax, esi
jmp 0x10030c17
push 1
pop eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 8