Function at 0x41002a
Capabilities:
Encode data using base64
Get file size

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0xc]
sub esp, 0xe10
push ebx
mov eax, ecx
shr eax, 0x1c
and eax, 3
push esi
push edi
je 0x410648
mov esi, dword [ebp + 8]
push eax
push esi
call fcn.0040fd27
xor ebx, ebx
cmp eax, ebx
je 0x410648
mov esi, dword [esi + 0x14]
lea edi, [esi + 0x24]
push str.http:
push edi
call fcn.00406c83
test eax, eax
pop ecx
pop ecx
jne 0x410648
push 0x3a
push edi
call fcn.0043dadc
cmp eax, ebx
pop ecx
pop ecx
je 0x410648
inc eax
push 9
mov dword [ebp - 0xc], eax
pop ecx
xor eax, eax
lea edi, [ebp - 0x34]
mov dword [ebp - 0x38], ebx
rep stosd dword es:[edi], eax
lea edi, [esi + 0x24]
mov dword [ebp - 8], ebx
cmp edi, ebx
je 0x4100c7
push edi
call fcn.0043ae20
lea eax, [eax + edi + 1]
cmp byte [eax], bl
pop ecx
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x38], eax
je 0x4100c7
inc dword [ebp - 8]
cmp dword [ebp - 8], 0xa
mov edi, eax
jl 0x4100a2
lea eax, [ebp - 0xa0c]
push eax
mov eax, 0x7bc
call fcn.004077b7
mov eax, 0x44f33c
pop ecx
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0xa08], eax
mov dword [ebp - 0xa04], eax
call fcn.0040f6d3
mov ecx, dword [esi + 8]
mov dword [ebp - 0x294], eax
call fcn.0040f6d3
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x290], eax
call fcn.0040f6d3
cmp eax, ebx
jne 0x410120
mov dword [ebp - 0x28c], ebx
mov dword [ebp - 0x288], ebx
jmp 0x41012d
push eax
lea eax, [ebp - 0x28c]
push eax
call fcn.0040fda7
mov ecx, dword [esi + 0xc]
call fcn.0040f6d3
cmp eax, ebx
jne 0x410147
mov dword [ebp - 0x284], ebx
mov dword [ebp - 0x280], ebx
jmp 0x410154
push eax
lea eax, [ebp - 0x284]
push eax
call fcn.0040fda7
mov ecx, dword [esi + 0x14]
call fcn.0040f6d3
cmp eax, ebx
jne 0x41016e
mov dword [ebp - 0x27c], ebx
mov dword [ebp - 0x278], ebx
jmp 0x41017b
push eax
lea eax, [ebp - 0x27c]
push eax
call fcn.0040fda7
mov dword [ebp - 8], ebx
mov eax, dword [ebp - 8]
shl eax, 3
mov edi, dword [ebp + eax - 0x38]
cmp edi, ebx
je 0x4101c2
mov esi, dword [ebp + eax - 0x34]
cmp esi, ebx
je 0x4101c2
push str.request_method
push edi
call fcn.0043b31d
test eax, eax
pop ecx
pop ecx
jne 0x4101ab
mov dword [ebp - 0xa04], esi
push str.response_head
push edi
call fcn.0043b31d
test eax, eax
pop ecx
pop ecx
jne 0x4101c2
mov dword [ebp - 0xa08], esi
inc dword [ebp - 8]
cmp dword [ebp - 8], 5
jl 0x41017e
mov esi, dword [ebp - 0xc]
push 0x2f
push esi
mov dword [ebp - 0xa0c], esi
call fcn.0043d260
cmp eax, ebx
pop ecx
pop ecx
je 0x4101e9
cmp byte [eax + 1], bl
jne 0x4101e9
mov byte [eax], bl
push 0x2f
push esi
call fcn.0043d260
mov esi, eax
cmp esi, ebx
pop ecx
pop ecx
je 0x410240
inc esi
push 0x3f
push esi
call fcn.0043b7f0
cmp eax, ebx
pop ecx
pop ecx
je 0x41020f
inc eax
cmp byte [eax], bl
je 0x41020f
mov esi, eax
push 0x3d
push esi
call fcn.0043b7f0
cmp eax, ebx
pop ecx
pop ecx
je 0x410230
lea edi, [eax + 1]
push 0x3d
push edi
call fcn.0043b7f0
test eax, eax
pop ecx
pop ecx
jne 0x410230
mov esi, edi
push 0x40
push esi
lea edi, [ebp - 0x4bb]
call fcn.00406f13
pop ecx
pop ecx
mov esi, 0xff
push esi
lea eax, [ebp - 0x24b]
push ebx
push eax
mov dword [ebp - 0xc], ebx
mov byte [ebp - 0x24c], bl
call fcn.0043acc0
add esp, 0xc
mov dword [ebp - 0x10], ebx
jmp 0x410428
cmp dword [ebp - 0x10], ebx
jne 0x41029b
lea eax, [ebp - 0x24c]
push str.http
push eax
call fcn.00406c83
test eax, eax
pop ecx
pop ecx
jne 0x410425
push 0x3f
lea eax, [ebp - 0x24c]
push eax
lea edi, [ebp - 0x4fb]
jmp 0x41041e
push esi
lea eax, [ebp - 0x14b]
push ebx
push eax
mov dword [ebp - 8], ebx
mov byte [ebp - 0x14c], bl
call fcn.0043acc0
add esp, 0xc
push 0x44f4f4
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x24c]
push eax
lea eax, [ebp - 0x14c]
push esi
push eax
call fcn.00407c42
mov edi, dword [ebp - 8]
add esp, 0x14
lea eax, [ebp - 0x14c]
push str.content_type
lea edi, [ebp + edi - 0x24b]
push eax
mov dword [ebp - 8], edi
call fcn.00406c83
test eax, eax
pop ecx
pop ecx
jne 0x410309
push 0x7f
push edi
lea edi, [ebp - 0x9fc]
call fcn.00406f13
pop ecx
pop ecx
lea eax, [ebp - 0x14c]
push str.server
push eax
call fcn.00406c83
test eax, eax
pop ecx
pop ecx
jl 0x410332
push 0x7f
push dword [ebp - 8]
lea edi, [ebp - 0x97c]
call fcn.00406f13
pop ecx
pop ecx
lea eax, [ebp - 0x14c]
push str.location
push eax
call fcn.00406c83
test eax, eax
pop ecx
pop ecx
jl 0x41035e
push 0x400
push dword [ebp - 8]
lea edi, [ebp - 0x8fc]
call fcn.00406f13
pop ecx
pop ecx
lea eax, [ebp - 0x14c]
push str.date
push eax
call fcn.00406c83
test eax, eax
pop ecx
pop ecx
jl 0x410384
push dword [ebp - 8]
lea eax, [ebp - 0x274]
push eax
call fcn.0040fe05
lea eax, [ebp - 0x14c]
push str.last_modified
push eax
call fcn.00406c83
test eax, eax
pop ecx
pop ecx
jl 0x4103aa
push dword [ebp - 8]
lea eax, [ebp - 0x26c]
push eax
call fcn.0040fe05
lea eax, [ebp - 0x14c]
push str.content_encoding
push eax
call fcn.00406c83
test eax, eax
pop ecx
pop ecx
jl 0x4103d3
push 0x1f
push dword [ebp - 8]
lea edi, [ebp - 0x43b]
call fcn.00406f13
pop ecx
pop ecx
lea eax, [ebp - 0x14c]
push str.cache_control
push eax
call fcn.00406c83
test eax, eax
pop ecx
pop ecx
jl 0x4103fc
push 0x3f
push dword [ebp - 8]
lea edi, [ebp - 0x316]
call fcn.00406f13
pop ecx
pop ecx
lea eax, [ebp - 0x14c]
push str.etag
push eax
call fcn.00406c83
test eax, eax
pop ecx
pop ecx
jl 0x410425
push 0x3f
push dword [ebp - 8]
lea edi, [ebp - 0x2d6]
call fcn.00406f13
pop ecx
pop ecx
inc dword [ebp - 0x10]
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0xa08]
lea eax, [ebp - 0x24c]
push esi
push eax
call fcn.00407de9
add esp, 0x10
test eax, eax
jne 0x410267
lea eax, [ebp - 0x4bb]
push 0x2e
push eax
call fcn.0043b7f0
mov esi, 0x3ff
push esi
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0xe0b]
push ebx
push eax
mov byte [ebp - 0xe0c], bl
call fcn.0043acc0
add esp, 0x14
push 7
xor eax, eax
mov byte [ebp - 0x30], bl
pop ecx
lea edi, [ebp - 0x2f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x9fc]
push 0x7f
push eax
lea edi, [ebp - 0xcc]
call fcn.00406f13
mov eax, edi
push 0x3b
push eax
call fcn.0043dadc
add esp, 0x10
cmp eax, ebx
je 0x4104ae
mov byte [eax], bl
lea eax, [ebp - 0xcc]
push eax
push str.MIMEDatabaseContent_Type_s
lea eax, [ebp - 0xe0c]
push esi
push eax
call fcn.0043a806
lea eax, [ebp - 0xe0c]
push eax
lea esi, [ebp - 0x30]
call fcn.00412a87
add esp, 0x14
cmp byte [ebp - 0x30], 0x2e
jne 0x41050a
cmp dword [ebp - 0xc], ebx
mov eax, esi
je 0x4104fa
push 4
push dword [ebp - 0xc]
push eax
call fcn.0043d4bf
add esp, 0xc
test eax, eax
je 0x41050a
mov eax, esi
push 0x7f
push eax
lea edi, [ebp - 0x4bb]
call fcn.00407976
pop ecx
pop ecx
cmp byte [ebp - 0x4bb], bl
mov esi, str._:____
lea edi, [ebp - 0x44]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea esi, [ebp - 0x4bb]
je 0x41053f
movsx eax, byte [esi]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.0043dadc
test eax, eax
pop ecx
pop ecx
je 0x41053a
mov byte [esi], 0x5f
inc esi
cmp byte [esi], bl
jne 0x410524
cmp dword [ebp - 0x294], ebx
mov esi, 0x104
mov edi, str._s_8.8Xd01
jne 0x4105dc
mov eax, dword [ebp + 0x10]
test dword [eax + 8], 0x30000000
jne 0x4105dc
push esi
lea eax, [ebp - 0x14b]
push ebx
push eax
mov byte [ebp - 0x14c], bl
call fcn.0043acc0
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
add esp, 0xc
push eax
push dword [ebp + 0xc]
mov dword [ebp - 0xc], eax
push edi
lea eax, [ebp - 0x14c]
push esi
push eax
call fcn.0043a806
mov eax, dword [ebp + 8]
add esp, 0x14
cmp dword [eax + 0x20], 0x13
jb 0x4105b0
push dword [ebp + 0xc]
lea eax, [ebp - 0x14c]
push eax
mov eax, dword [ebp - 0xc]
call fcn.0040f850
lea eax, [ebp - 0x14c]
push eax
call fcn.00406b58
cmp eax, 0xffffffff
pop ecx
mov dword [ebp - 0xc], eax
je 0x4105dc
push ebx
push eax
call dword [sym.imp.KERNEL32.DLL_GetFileSize]
push dword [ebp - 0xc]
mov dword [ebp - 0x294], eax
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov eax, dword [ebp + 0x10]
test dword [eax + 8], 0x30000000
jne 0x410619
mov ebx, dword [eax]
push ebx
push dword [ebp + 0xc]
lea eax, [ebp - 0x41b]
push edi
push esi
push eax
call fcn.0043a806
mov eax, dword [ebp + 8]
add esp, 0x14
cmp dword [eax + 0x20], 0x13
jb 0x410619
push dword [ebp + 0xc]
lea eax, [ebp - 0x41b]
push eax
mov eax, ebx
call fcn.0040f850
mov esi, dword [ebp + 0x10]
lea edi, [ebp - 0x264]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0x4bb]
movsd dword es:[edi], dword [esi]
call fcn.00407eef
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x20]
lea edx, [ebp - 0xa0c]
mov dword [ebp - 0x254], eax
mov eax, dword [ecx]
push edx
call dword [eax]
pop edi
pop esi
pop ebx
leave
ret 0xc