Function at 0x403d60
Capabilities:
Create directory
Encode data using base64
Query environment variable
Resolve function by parsing pe exports

Disassembly:
push ebp
mov eax, 0x5f9c
push edi
push esi
push ebx
call fcn.0044e570
xor ebx, ebx
sub esp, eax
lea eax, [esp + 0x64]
mov dword [esp + 8], eax
lea eax, [esp + 0x1838]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x5fb0]
mov dword [esp], eax
call fcn.00403860
mov dword [esp], str.GCOV_PREFIX_STRIP
mov dword [esp + 0x54], eax
call sub.msvcrt.dll_getenv
test eax, eax
je 0x403db5
mov dword [esp], eax
call sub.msvcrt.dll_atoi
test eax, eax
cmovns ebx, eax
mov dword [esp], str.GCOV_PREFIX
mov dword [esp + 0x68], ebx
call sub.msvcrt.dll_getenv
test eax, eax
mov esi, eax
je 0x403e1b
mov dword [esp], eax
call sub.msvcrt.dll_strlen
test eax, eax
mov ebx, eax
je 0x403e1b
movzx edx, byte [esi + ebx - 1]
lea eax, [eax - 1]
cmp dl, 0x5c
je 0x403deb
cmp dl, 0x2f
jne 0x403df1
test eax, eax
je 0x403e1b
mov ebx, eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x6c], ebx
lea eax, [ebx + eax + 2]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [esp + 0x60], eax
call sub.msvcrt.dll_memcpy
jmp 0x403e42
mov edi, dword [esp + 0x68]
test edi, edi
jne 0x404036
mov eax, dword [esp + 0x64]
mov dword [esp + 0x6c], 0
add eax, 2
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [esp + 0x60], eax
mov esi, dword [esp + 0x5fb0]
lea edx, [esp + 0x70]
xor eax, eax
mov ecx, 0x5f2
mov edi, edx
rep stosd dword es:[edi], eax
test esi, esi
je 0x403ff7
mov eax, dword [esp + 0x5fb0]
mov dword [0x4780e4], 0
mov dword [0x4780e0], 0
mov ebx, dword [eax + 0x30]
test ebx, ebx
je 0x403ed7
mov eax, dword [esp + 0x5fb0]
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x403ed7
mov edi, dword [esp + 0x5fb0]
xor esi, esi
xor eax, eax
mov dword [esp + 0x18], esi
nop
mov edx, dword [edi + 0x38]
mov ecx, dword [edx + eax*4]
xor eax, eax
add ecx, 0x10
mov edx, dword [edi + eax*4 + 0x10]
test edx, edx
je 0x403ebf
cmp eax, 8
je 0x404045
add ecx, 8
add eax, 1
cmp eax, 9
jne 0x403eab
add dword [esp + 0x18], 1
mov esi, dword [esp + 0x18]
cmp esi, dword [edi + 0x34]
mov eax, esi
jne 0x403ea0
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x5fb0]
add edi, esi
test ecx, ecx
mov ebx, dword [eax + 0xc]
jle 0x403f12
movzx edx, byte [ebx]
cmp dl, 0x5c
je 0x4041a0
cmp dl, 0x2f
mov eax, ebx
je 0x4041a0
test dl, dl
jne 0x404018
test esi, esi
je 0x403f33
movzx eax, byte [ebx]
test al, al
je 0x4041b6
cmp byte [ebx + 1], 0x3a
je 0x404b04
cmp al, 0x5c
jne 0x4041ac
mov dword [esp + 4], ebx
mov dword [esp], edi
call sub.msvcrt.dll_strcpy
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call fcn.00403250
test eax, eax
je 0x4040a5
mov eax, 1
call fcn.004030d0
test eax, eax
je 0x4041c1
mov eax, dword [eax]
test eax, eax
je 0x4041c1
cmp eax, 0x67636461
mov eax, dword [esp + 0x60]
je 0x4045bb
mov dword [esp + 4], eax
mov dword [esp], str.profiling:_s:Not_a_gcov_data_file_n
call fcn.00403190
mov edx, dword [0x4780e4]
mov ebx, dword [esp + 0x5fb0]
test edx, edx
jne 0x403fa3
jmp 0x403fb8
mov edx, eax
mov ecx, 9
mov eax, ebx
call fcn.004031c0
test eax, eax
mov dword [0x4780e4], eax
jne 0x403fa1
call fcn.004032f0
test eax, eax
je 0x403fde
mov edx, str.profiling:_s:Error_writing_n
mov eax, str.profiling:_s:Overflow_writing_n
cmovns eax, edx
mov edx, dword [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00403190
mov eax, dword [esp + 0x5fb0]
mov eax, dword [eax + 4]
test eax, eax
mov dword [esp + 0x5fb0], eax
jne 0x403e60
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call sub.msvcrt.dll_free
add esp, 0x5f9c
pop ebx
pop esi
pop edi
pop ebp
ret
test ecx, ecx
je 0x403f12
cmp dl, 0x5c
je 0x404022
cmp dl, 0x2f
jne 0x404027
sub ecx, 1
mov ebx, eax
add eax, 1
movzx edx, byte [eax]
test dl, dl
jne 0x404010
jmp 0x403f12
mov ebx, 1
mov esi, 0x466e8f
jmp 0x403df1
mov ebp, dword [ecx]
mov eax, 0x38e38e39
imul ebp
mov eax, ebp
sar eax, 0x1f
sar edx, 1
sub edx, eax
lea eax, [edx + edx*8]
cmp ebp, eax
jne 0x40517e
mov eax, dword [ecx + 4]
xor ebx, ebx
test ebp, ebp
lea esi, [eax + 8]
jle 0x403ec7
mov dword [esp], esi
add ebx, 9
add esi, 0x48
mov dword [esp + 4], 8
call fcn.00403c40
cmp ebp, ebx
jg 0x404072
add dword [esp + 0x18], 1
mov esi, dword [esp + 0x18]
cmp esi, dword [edi + 0x34]
mov eax, esi
jne 0x403ea0
jmp 0x403ed7
mov edi, dword [esp + 0x60]
movzx ebx, byte [edi]
test bl, bl
je 0x40454b
cmp byte [edi + 1], 0x3a
mov eax, edi
je 0x404b10
cmp bl, 0x5c
jne 0x40516e
movzx ebx, byte [eax + 1]
lea esi, [eax + 1]
test bl, bl
jne 0x4040ef
jmp 0x40454b
cmp bl, 0x2f
je 0x4040f4
add esi, 1
movzx ebx, byte [esi]
test bl, bl
je 0x404118
cmp bl, 0x5c
jne 0x4040e0
mov byte [esi], 0
mov dword [esp + 4], 0
mov dword [esp], edi
call sub.msvcrt.dll__access
cmp eax, 0xffffffff
je 0x404151
mov byte [esi], bl
add esi, 1
movzx ebx, byte [esi]
test bl, bl
jne 0x4040ef
mov ebx, dword [esp + 0x60]
mov dword [esp], ebx
call fcn.00403250
test eax, eax
jne 0x403f53
mov eax, dword [esp + 0x60]
mov dword [esp + 4], str.profiling:_s:Cannot_open_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.0045ac70
jmp 0x403fde
mov dword [esp], edi
call sub.msvcrt.dll__mkdir
cmp eax, 0xffffffff
jne 0x40410c
call dword [sym.imp.msvcrt.dll__errno]
cmp dword [eax], 0x11
je 0x40410c
mov dword [esp + 4], edi
mov dword [esp], str.profiling:_s:Cannot_create_directory_n
call fcn.00403190
mov byte [esi], bl
mov eax, dword [esp + 0x60]
mov dword [esp + 4], str.profiling:_s:Skip_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.0045ac70
jmp 0x403fde
lea eax, [ebx + 1]
movzx edx, byte [ebx + 1]
jmp 0x403f0a
cmp al, 0x2f
nop
je 0x403f33
mov byte [edi], 0x2f
add edi, 1
jmp 0x403f33
mov eax, dword [0x4770c0]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [0x4770d8], 0xffffffff
mov dword [esp], eax
mov dword [0x4770c4], 0
mov dword [0x4770c8], 0
call sub.msvcrt.dll_fseek
mov dword [esp + 0x4c], 0
xor eax, eax
mov ecx, 0x5f2
lea edi, [esp + 0x3000]
mov dword [esp + 0x5c], edi
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x5fb0]
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x4c]
test ecx, ecx
mov dword [esp + 0x50], eax
je 0x4042e1
xor eax, eax
mov edx, dword [esp + 0x5fb4]
xor ebx, ebx
test eax, eax
sete bl
test edx, edx
jne 0x404258
add eax, 1
mov dword [esp + 0x300c], eax
test ebx, ebx
je 0x40426a
mov eax, dword [esp + 0x1840]
mov dword [esp + 0x3008], eax
mov eax, dword [esp + 0x1848]
add dword [esp + 0x3010], eax
mov edx, dword [esp + 0x184c]
adc dword [esp + 0x3014], edx
mov edx, dword [esp + 0x1854]
cmp dword [esp + 0x301c], edx
mov eax, dword [esp + 0x1850]
jg 0x4042b6
jl 0x4042a8
cmp dword [esp + 0x3018], eax
jae 0x4042b6
mov dword [esp + 0x3018], eax
mov dword [esp + 0x301c], edx
add dword [esp + 0x3020], eax
adc dword [esp + 0x3024], edx
test ebx, ebx
je 0x404666
lea edi, [esp + 0x3028]
mov ecx, 0x5e8
lea esi, [esp + 0x1860]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x7c]
test eax, eax
jne 0x404552
mov edx, dword [esp + 0x300c]
test edx, edx
je 0x404552
mov eax, dword [esp + 0x3008]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x3014]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x3010]
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x301c]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x3018]
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x3024]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x3020]
mov dword [esp + 0x94], edx
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x3000], eax
mov eax, dword [esp + 0x50]
test eax, eax
je 0x404b2d
mov ebp, dword [esp + 0x4c]
test ebp, ebp
jne 0x404b1c
mov eax, dword [esp + 0x5c]
mov dword [esp], 0xa3000000
mov dword [esp + 4], eax
call fcn.004033d0
mov ebx, dword [0x4780e0]
test ebx, ebx
je 0x4043cc
lea eax, [ebx + 8]
mov dword [esp + 4], eax
mov dword [esp], 0xa3000000
call fcn.004033d0
mov eax, dword [0x4780e0]
mov ebx, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
test ebx, ebx
mov dword [0x4780e0], ebx
jne 0x4043a0
mov eax, dword [esp + 0x5fb0]
mov dword [esp + 0x20], 0
mov edi, dword [eax + 0x34]
test edi, edi
jne 0x40443c
jmp 0x4045a6
mov eax, dword [esp + 0x5fb0]
mov esi, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov ebp, dword [eax + esi*4]
test ebp, ebp
je 0x40440c
mov eax, dword [ebp]
cmp dword [esp + 0x5fb0], eax
je 0x404599
mov eax, 2
call fcn.00403080
mov dword [eax], 0x1000000
mov dword [eax + 4], 0
mov eax, dword [esp + 0x5fb0]
add dword [esp + 0x20], 1
mov esi, dword [esp + 0x20]
cmp esi, dword [eax + 0x34]
je 0x4045a6
mov ebp, dword [0x4780e4]
test ebp, ebp
je 0x4043e7
mov eax, dword [esp + 0x20]
cmp dword [ebp + 4], eax
jne 0x4043e7
add ebp, 8
mov dword [esp + 0x28], 1
mov eax, 2
call fcn.00403080
mov dword [eax], 0x1000000
mov dword [eax + 4], 3
mov eax, 1
mov ebx, dword [ebp + 4]
call fcn.00403080
mov dword [eax], ebx
mov eax, 1
mov ebx, dword [ebp + 8]
call fcn.00403080
mov dword [eax], ebx
mov eax, 1
mov ebx, dword [ebp + 0xc]
call fcn.00403080
mov dword [esp + 0x18], 0
mov dword [eax], ebx
lea eax, [ebp + 0x10]
mov dword [esp + 0x38], eax
lea esi, [esi]
mov eax, dword [esp + 0x5fb0]
mov edi, dword [esp + 0x18]
mov esi, dword [eax + edi*4 + 0x10]
test esi, esi
je 0x404512
mov ebx, dword [esp + 0x38]
mov eax, 2
shl edi, 0x11
mov esi, dword [ebx]
call fcn.00403080
mov edx, edi
mov ebx, dword [ebx + 4]
add edx, 0x1a10000
test esi, esi
mov dword [eax], edx
lea edx, [esi + esi]
mov dword [eax + 4], edx
je 0x40450d
lea esi, [esi]
add ebx, 8
mov eax, 2
mov ebp, dword [ebx - 8]
mov edi, dword [ebx - 4]
call fcn.00403080
sub esi, 1
mov dword [eax], ebp
mov dword [eax + 4], edi
jne 0x4044f0
add dword [esp + 0x38], 8
add dword [esp + 0x18], 1
cmp dword [esp + 0x18], 9
jne 0x4044b0
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x404423
mov edx, dword [0x4780e4]
mov ecx, 9
mov eax, dword [esp + 0x5fb0]
call fcn.004031c0
mov dword [0x4780e4], eax
jmp 0x404423
mov ebx, edi
jmp 0x40411c
mov edx, dword [esp + 0x70]
test edx, edx
jne 0x40435f
mov esi, dword [esp + 0x3008]
cmp dword [esp + 0x78], esi
jne 0x404578
cmp eax, dword [esp + 0x300c]
je 0x4050b2
mov eax, dword [esp + 0x58]
mov dword [esp], str.profiling:_s:Data_file_mismatch___some_data_files_may_have_been_concurrently_updated_without_locking_support_n
mov dword [esp + 4], eax
call fcn.00403190
mov dword [esp + 0x70], 0xffffffff
jmp 0x40435f
mov dword [esp + 0x28], 0
jmp 0x40445a
mov eax, 1
call fcn.00403080
mov dword [eax], 0
jmp 0x403f8e
mov dword [esp + 0x30], eax
mov eax, 1
call fcn.004030d0
test eax, eax
je 0x40507b
mov eax, dword [eax]
cmp eax, 0x4137332a
je 0x404b5f
mov esi, eax
shr esi, 0x18
mov ebx, esi
mov esi, eax
shr esi, 0x10
mov ecx, esi
mov esi, eax
shr esi, 8
mov edx, esi
mov byte [esp + 0x3003], al
mov eax, dword [esp + 0x30]
mov byte [esp + 0x3000], bl
mov byte [esp + 0x3001], cl
mov byte [esp + 0x3002], dl
test eax, eax
mov byte [esp + 0x47c8], 0x41
mov byte [esp + 0x47c9], 0x37
mov byte [esp + 0x47ca], 0x33
mov byte [esp + 0x47cb], 0x2a
je 0x40506c
lea esi, [esp + 0x3000]
mov dword [esp + 0xc], esi
lea esi, [esp + 0x47c8]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], str.profiling:_s:Version_mismatch___expected__.4s_got__.4s_n
call fcn.00403190
jmp 0x403f8e
mov eax, ebx
mov ecx, 0x5e8
lea edi, [esp + 0x47c8]
mov ebp, 0xfb
rep stosd dword es:[edi], eax
lea eax, [esp + 0x47b0]
xor ebx, ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0xfb
mov eax, dword [esp + 0x40]
mov esi, dword [eax]
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x38], esi
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], eax
test ecx, ecx
je 0x4049db
lea esi, [esi]
test ebx, ebx
jne 0x404885
test ebp, ebp
js 0x40471f
lea eax, [ebp + ebp*2]
shl eax, 3
lea edi, [esp + 0x1860]
lea edx, [edi + eax]
mov ebx, dword [edx]
test ebx, ebx
jne 0x404ae2
sub eax, 0x18
jmp 0x404717
lea edi, [esp + 0x1860]
lea edx, [edi + eax]
sub eax, 0x18
mov ebx, dword [edx]
test ebx, ebx
jne 0x404ae2
sub ebp, 1
cmp ebp, 0xffffffff
jne 0x404700
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x2c]
lea eax, [eax + eax*2]
shl eax, 3
add dword [esp + eax + 0x47c8], esi
mov esi, dword [esp + 0x28]
add dword [esp + eax + 0x47d8], esi
adc dword [esp + eax + 0x47dc], edi
mov edx, dword [esp + eax + 0x47d0]
mov eax, dword [esp + eax + 0x47d4]
mov esi, eax
or esi, edx
je 0x404af5
mov esi, dword [esp + 0x40]
mov ecx, dword [esi + 0xc]
mov ebx, dword [esi + 8]
cmp eax, ecx
jl 0x404798
jg 0x404776
cmp edx, ebx
jbe 0x404798
mov edx, ebx
mov eax, ecx
lea esi, [esi]
mov esi, dword [esp + 0x48]
lea ecx, [esi + esi*2]
shl ecx, 3
mov dword [esp + ecx + 0x47d0], edx
mov dword [esp + ecx + 0x47d4], eax
mov eax, dword [esp + 0x48]
lea esi, [esp + 0x3028]
mov edi, esi
mov dword [esp + 0x38], esi
lea ecx, [esp + 0x47c8]
mov esi, 0xfffffff8
sub esi, ecx
lea eax, [eax + eax*2 - 3]
lea eax, [esp + eax*8 + 0x47d0]
mov dword [esp + 0x18], ebp
jmp 0x404808
lea edx, [esi + eax]
add edx, edi
mov ecx, dword [edx]
add dword [eax - 8], ecx
mov ecx, dword [edx + 0x10]
mov ebx, dword [edx + 0x14]
add dword [eax + 8], ecx
mov ecx, dword [eax + 4]
adc dword [eax + 0xc], ebx
mov ebx, dword [eax]
mov ebp, ecx
or ebp, ebx
mov ebp, dword [edx + 8]
mov edx, dword [edx + 0xc]
je 0x404800
cmp ecx, edx
jl 0x404805
jg 0x404800
cmp ebx, ebp
jbe 0x404805
lea esi, [esi]
mov dword [eax], ebp
mov dword [eax + 4], edx
sub eax, 0x18
lea ecx, [esp + 0x47b8]
cmp eax, ecx
jne 0x4047c8
mov ebp, dword [esp + 0x18]
test ebp, ebp
js 0x404851
mov ecx, dword [esp + 0x20]
lea eax, [ebp + ebp*2]
mov ebx, dword [esp + 0x24]
shl eax, 3
lea esi, [esi]
add ecx, dword [esp + eax + 0x1870]
adc ebx, dword [esp + eax + 0x1874]
sub ebp, 1
sub eax, 0x18
cmp ebp, 0xffffffff
jne 0x404830
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x44]
mov ecx, 0x5e8
mov edi, dword [esp + 0x20]
lea esi, [esp + 0x47c8]
mov ebp, dword [esp + 0x24]
lea eax, [eax + eax*2]
add dword [esp + eax*8 + 0x47d8], edi
adc dword [esp + eax*8 + 0x47dc], ebp
mov edi, dword [esp + 0x38]
rep movsd dword es:[edi], dword [esi]
jmp 0x4042e1
lea eax, [ebp + ebp*2]
lea edx, [esp + eax*8 + 0x1860]
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x38], ebx
mov esi, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov eax, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edi
ja 0x404a60
mov edi, dword [esp + 0x38]
add dword [esp + 0x18], eax
adc dword [esp + 0x1c], edx
cmp edi, ebx
jae 0x40512a
mov ecx, dword [esp + 0x24]
mov eax, edi
mul dword [esp + 0x20]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0
imul ecx, edi
mov dword [esp], eax
add edx, ecx
mov dword [esp + 4], edx
call fcn.0044e5a0
mov esi, eax
mov edi, edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x24]
sub eax, esi
sbb edx, edi
mov edi, dword [esp + 0x38]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x38], 0
sub ebx, edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov edi, dword [esp + 0x1c]
add eax, dword [esp + 0x30]
mov esi, dword [esp + 0x18]
adc edx, dword [esp + 0x34]
mov dword [esp + 0x30], eax
mov eax, edi
or eax, esi
mov dword [esp + 0x34], edx
jne 0x404a07
mov edx, dword [esp + 0x18]
lea eax, [edx + edx*2]
mov esi, dword [esp + 0x3c]
shl eax, 3
mov edi, dword [esp + 0x34]
add dword [esp + eax + 0x47c8], esi
mov esi, dword [esp + 0x30]
add dword [esp + eax + 0x47d8], esi
adc dword [esp + eax + 0x47dc], edi
mov ecx, dword [esp + eax + 0x47d0]
mov eax, dword [esp + eax + 0x47d4]
mov dword [esp + 0x44], edx
mov esi, eax
or esi, ecx
je 0x4049b0
cmp eax, dword [esp + 0x1c]
jl 0x4049c9
jg 0x4049b0
cmp ecx, dword [esp + 0x18]
jbe 0x4049c9
lea esi, [esi]
mov esi, dword [esp + 0x18]
lea eax, [edx + edx*2]
mov edi, dword [esp + 0x1c]
mov dword [esp + eax*8 + 0x47d0], esi
mov dword [esp + eax*8 + 0x47d4], edi
mov ecx, dword [esp + 0x38]
cmp ebx, 1
sbb ebp, 0
test ecx, ecx
jne 0x4046d0
sub dword [esp + 0x48], 1
sub dword [esp + 0x40], 0x18
cmp dword [esp + 0x48], 0xffffffff
jne 0x4046a8
test ebx, ebx
je 0x4049f7
sub ebp, 1
lea eax, [esp + 0x3028]
mov dword [esp + 0x38], eax
jmp 0x404817
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x404ad0
bsr eax, dword [esp + 0x1c]
mov edi, eax
xor edi, 0x1f
mov eax, 0x3f
sub eax, edi
cmp eax, 1
jbe 0x404959
mov edx, dword [esp + 0x1c]
mov ecx, 0x3d
mov eax, dword [esp + 0x18]
sub ecx, edi
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
mov edx, 0x4000003e
and eax, 3
sub edx, edi
lea edx, [eax + edx*4]
jmp 0x40495d
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
add dword [esp + 0x18], eax
adc dword [esp + 0x1c], edx
mov eax, esi
mov esi, dword [esp + 0x38]
mov ecx, edi
mul ebx
imul ecx, ebx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 0
mov dword [esp], eax
add edx, ecx
mov dword [esp + 4], edx
call fcn.0044e5a0
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
sub dword [esp + 0x38], ebx
sub dword [esp + 0x28], eax
sbb dword [esp + 0x2c], edx
mov dword [esp + 0x3c], ebx
xor ebx, ebx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edi
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
jmp 0x404937
bsr eax, dword [esp + 0x18]
xor eax, 0x1f
add eax, 0x20
mov edi, eax
jmp 0x404a1d
mov esi, dword [edx + 0x10]
mov edi, dword [edx + 0x14]
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edi
jmp 0x404890
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
jmp 0x404780
movzx eax, byte [ebx + 2]
add ebx, 2
jmp 0x403f2b
lea eax, [edi + 2]
movzx ebx, byte [edi + 2]
jmp 0x4040c0
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call fcn.00403810
jmp 0x404382
mov eax, 2
call fcn.00403080
mov dword [eax], 0x67636461
mov dword [eax + 4], 0x4137332a
mov eax, dword [esp + 0x5fb0]
mov ebx, dword [eax + 8]
mov eax, 1
call fcn.00403080
mov dword [eax], ebx
jmp 0x404376
mov eax, 1
call fcn.004030d0
test eax, eax
je 0x405167
mov eax, dword [eax]
mov esi, dword [esp + 0x5fb0]
cmp dword [esi + 8], eax
jne 0x4041c1
mov ebx, 0x4780e0
mov dword [esp + 0x4c], 0
lea ebp, [esp + 0x3000]
mov dword [esp + 0x18], ebx
mov ebx, dword [0x4770c8]
mov eax, 1
add ebx, dword [0x4770c4]
call fcn.004030d0
test eax, eax
je 0x404c6f
mov eax, dword [eax]
cmp eax, 0xa3000000
jne 0x405143
mov eax, 1
call fcn.004030d0
lea eax, [esp + 0x47c8]
mov dword [esp], eax
call fcn.004035a0
mov eax, dword [0x4770c0]
test eax, eax
je 0x40504a
mov eax, dword [0x4770d4]
test eax, eax
jne 0x405046
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x404c3b
mov eax, dword [esp + 0x54]
cmp eax, dword [esp + 0x47c8]
jne 0x404b9b
mov eax, dword [esp + 0x1840]
cmp dword [esp + 0x47d0], eax
jne 0x404b9b
mov ecx, 0x5f2
mov edi, ebp
lea esi, [esp + 0x47c8]
mov dword [esp + 0x4c], ebx
rep movsd dword es:[edi], dword [esi]
jmp 0x404b9b
mov dword [esp], 0x17d0
lea esi, [esp + 0x47c8]
call sub.msvcrt.dll_malloc
mov ebx, dword [esp + 0x18]
mov ecx, 0x5f2
mov dword [ebx], eax
lea edi, [eax + 8]
rep movsd dword es:[edi], dword [esi]
mov dword [eax], 0
mov eax, dword [ebx]
mov dword [esp + 0x18], eax
jmp 0x404b9b
mov dword [esp + 0x50], ebx
xor eax, eax
mov edi, dword [esp + 0x5fb0]
mov dword [esp + 0x3c], 0x4780e4
mov dword [esp + 0x20], 0
mov esi, dword [esp + 0x20]
cmp esi, dword [edi + 0x34]
je 0x404e58
mov edx, dword [edi + 0x38]
cmp eax, 0x1000000
mov esi, dword [esp + 0x20]
mov esi, dword [edx + esi*4]
jne 0x404f41
mov eax, 1
call fcn.004030d0
test eax, eax
je 0x404e32
mov eax, dword [eax]
test eax, eax
je 0x404e32
cmp eax, 3
jne 0x404f41
test esi, esi
je 0x404cdf
cmp edi, dword [esi]
je 0x404f71
xor eax, eax
mov esi, 8
cmp dword [edi + esi*4 + 0x10], 1
sbb eax, 0xffffffff
sub esi, 1
cmp esi, 0xffffffff
jne 0x404ce6
lea edx, [eax*8 + 0x20]
mov dword [esp], edx
mov dword [esp + 0x38], edx
call sub.msvcrt.dll_malloc
mov edx, dword [esp + 0x38]
test eax, eax
mov dword [esp + 0x18], eax
je 0x40519a
mov esi, dword [esp + 0x20]
mov dword [eax], 0
mov dword [eax + 4], esi
mov eax, 1
call fcn.004030d0
test eax, eax
je 0x405096
mov eax, dword [eax]
mov esi, dword [esp + 0x18]
mov dword [esi + 0xc], eax
mov eax, 1
call fcn.004030d0
test eax, eax
je 0x40508f
mov eax, dword [eax]
mov esi, dword [esp + 0x18]
mov dword [esi + 0x10], eax
mov eax, 1
call fcn.004030d0
test eax, eax
je 0x405088
mov eax, dword [eax]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x38], 0
mov dword [esi + 0x14], eax
xor esi, esi
mov ebp, dword [edi + esi*4 + 0x10]
test ebp, ebp
je 0x404e18
mov eax, 1
call fcn.004030d0
test eax, eax
je 0x404efd
mov edx, esi
shl edx, 0x11
add edx, 0x1a10000
cmp dword [eax], edx
jne 0x404efd
mov eax, 1
call fcn.004030d0
test eax, eax
je 0x404ef4
mov ebx, dword [eax]
shr ebx, 1
lea edx, [ebx*8]
mov dword [esp], edx
mov dword [esp + 0x28], edx
call sub.msvcrt.dll_malloc
mov edx, dword [esp + 0x28]
test eax, eax
mov ebp, eax
je 0x40519a
mov eax, dword [esp + 0x18]
test ebx, ebx
mov ecx, dword [esp + 0x38]
lea eax, [eax + ecx*8]
mov dword [eax + 0x18], ebx
mov dword [eax + 0x1c], ebp
je 0x404e13
nop
call fcn.00403540
add ebp, 8
sub ebx, 1
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jne 0x404e00
add dword [esp + 0x38], 1
add esi, 1
cmp esi, 9
jne 0x404d81
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x18]
mov dword [esi], eax
mov dword [esp + 0x3c], eax
mov eax, 1
add dword [esp + 0x20], 1
call fcn.004030d0
test eax, eax
je 0x404f6a
mov esi, dword [esp + 0x20]
cmp esi, dword [edi + 0x34]
mov eax, dword [eax]
jne 0x404c99
test eax, eax
jne 0x404f41
mov eax, dword [0x4770c0]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [0x4770d8], 0xffffffff
mov dword [esp], eax
mov dword [0x4770c4], 0
mov dword [0x4770c8], 0
call sub.msvcrt.dll_fseek
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x40514c
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x300c]
mov dword [esp + 0x58], esi
lea esi, [esp + 0x3000]
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x5fb0]
mov edx, dword [esi + 0x10]
test edx, edx
jne 0x40423c
test eax, eax
je 0x4042e1
mov eax, dword [esp + 0x58]
mov dword [esp], str.profiling:_s:Merge_mismatch_for_summary._n
mov dword [esp + 4], eax
call fcn.00403190
jmp 0x403f8e
xor edx, edx
xor ebx, ebx
jmp 0x404dcf
mov edx, esi
mov eax, str.counter_mismatch
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], edx
mov dword [esp], str.profiling:_s:Function__u__s__u__n
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
call fcn.00403190
mov edx, dword [esp + 0x18]
mov ecx, esi
mov eax, edi
call fcn.004031c0
test eax, eax
mov dword [esp + 0x3c], eax
jne 0x404e32
mov eax, dword [esp + 0x20]
mov dword [esp + 8], str.function
mov dword [esp], str.profiling:_s:Merge_mismatch_for__s__u_n
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
call fcn.00403190
jmp 0x403f8e
xor eax, eax
jmp 0x404c8c
mov eax, 1
call fcn.004030d0
test eax, eax
je 0x405160
mov eax, dword [eax]
cmp dword [esi + 4], eax
jne 0x404f41
mov eax, 1
call fcn.004030d0
test eax, eax
je 0x405159
mov eax, dword [eax]
cmp dword [esi + 8], eax
jne 0x404f41
mov eax, 1
call fcn.004030d0
test eax, eax
je 0x405123
mov eax, dword [eax]
cmp dword [esi + 0xc], eax
jne 0x404f41
add esi, 0x10
xor ebx, ebx
mov ebp, dword [edi + ebx*4 + 0x10]
test ebp, ebp
je 0x405027
mov eax, 1
call fcn.004030d0
test eax, eax
je 0x4050ab
mov edx, dword [eax]
mov eax, 1
mov dword [esp + 0x18], edx
call fcn.004030d0
mov edx, dword [esp + 0x18]
test eax, eax
je 0x4050a4
mov ecx, dword [eax]
mov eax, ebx
shl eax, 0x11
add eax, 0x1a10000
cmp eax, edx
jne 0x404f41
mov eax, dword [esi]
lea edx, [eax + eax]
cmp edx, ecx
jne 0x404f41
mov edx, dword [esi + 4]
add esi, 8
mov dword [esp + 4], eax
mov dword [esp], edx
call ebp
add ebx, 1
cmp ebx, 9
jne 0x404fc1
mov ebx, dword [0x4770c0]
test ebx, ebx
je 0x40504a
mov eax, dword [0x4770d4]
test eax, eax
je 0x404e32
test eax, eax
js 0x40509d
mov eax, str.Error
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp], str.profiling:_s:_s_merging_n
mov dword [esp + 4], eax
call fcn.00403190
jmp 0x403f8e
mov eax, dword [esp + 0x5fb0]
mov eax, dword [eax + 0xc]
jmp 0x40463b
xor eax, eax
xor edx, edx
xor ecx, ecx
xor ebx, ebx
jmp 0x4045f3
xor eax, eax
jmp 0x404d70
xor eax, eax
jmp 0x404d55
xor eax, eax
jmp 0x404d3a
mov eax, str.Overflow
jmp 0x40504f
xor ecx, ecx
jmp 0x404ff9
xor edx, edx
jmp 0x404fdd
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
xor edx, dword [esp + 0x3014]
xor eax, dword [esp + 0x3010]
or edx, eax
jne 0x404578
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
xor edx, dword [esp + 0x301c]
xor eax, dword [esp + 0x3018]
or edx, eax
jne 0x404578
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
xor edx, dword [esp + 0x3024]
xor eax, dword [esp + 0x3020]
or edx, eax
jne 0x404578
jmp 0x40435f
xor eax, eax
jmp 0x404fb7
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x30], eax
xor eax, eax
mov dword [esp + 0x34], edx
xor edx, edx
jmp 0x404905
mov dword [esp + 0x50], ebx
jmp 0x404c75
mov eax, dword [esp + 0x50]
mov dword [esp + 0x4c], eax
jmp 0x404204
xor eax, eax
jmp 0x404f9e
xor eax, eax
jmp 0x404f85
xor eax, eax
jmp 0x404b73
cmp bl, 0x2f
je 0x4040c9
mov esi, eax
jmp 0x4040d0
mov dword [esp + 8], str.gcov_sort_icall_topn_counter
mov dword [esp + 4], 0x2c9
mov dword [esp], str..._.._gcc_gcc_.._libgcc_libgcov_driver.c
call fcn.00406280
test edx, edx
je 0x404efd
mov eax, str.cannot_allocate
jmp 0x404f04