Function at 0x41523a
Capabilities:
Hash data with md5

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [0x418074]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
xor esi, esi
mov dword [ebp - 0x30], edx
push edi
mov edi, dword [ebp + 0xc]
inc esi
mov ebx, ecx
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x34], esi
call fcn.00415e20
cmp dword [0x419ecc], 0
je 0x4152a3
cmp dword [0x419f68], 0
jne 0x415589
mov eax, dword [ebx + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x20], 0x67452301
mov dword [ebp - 0x1c], 0xefcdab89
mov dword [ebp - 0x18], 0x98badcfe
mov dword [ebp - 0x14], 0x10325476
mov dword [ebp - 0xc], eax
mov edx, esi
mov ecx, 0x800
call fcn.004122d8
mov ecx, dword [ebp + 8]
mov esi, eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x3c], esi
mov eax, dword [eax]
mov dword [ebp - 0x38], eax
mov eax, ecx
sub eax, dword [0x418860]
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 0x30]
mov dword [eax + 4], ecx
xor eax, eax
cmp dword [0x419f54], eax
je 0x4152ec
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
cmp edx, eax
ja 0x4152ec
cmp ecx, 0x718
jbe 0x4152fc
mov ecx, dword [ebx + 8]
mov eax, ecx
mov edx, dword [ebx + 0xc]
or eax, edx
jne 0x4153c8
mov edi, eax
mov dword [ebp - 0x24], edi
cmp edx, eax
ja 0x415309
cmp ecx, eax
jbe 0x41537b
mov ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x40]
push eax
lea edx, [ebp - 0x2c]
call fcn.004131a4
mov edi, dword [ebp - 0x24]
lea eax, [esi + 0xe8]
push edi
push dword [ebp - 0x2c]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp dword [0x419ecc], 0
je 0x41536b
lea eax, [edi + 0x3f]
and eax, 0xffffffc0
mov dword [ebp - 0x28], eax
cmp eax, edi
je 0x41535f
sub eax, edi
push eax
xor eax, eax
push eax
mov eax, dword [ebp - 0x2c]
add eax, edi
push eax
call sub.msvcrt.dll_memset
mov eax, dword [ebp - 0x28]
add esp, 0xc
mov edx, dword [ebp - 0x2c]
lea ecx, [ebp - 0x20]
push eax
call fcn.00417386
mov ecx, dword [ebp - 0x2c]
call fcn.0041242e
mov ecx, dword [ebx + 8]
xor eax, eax
mov edx, dword [ebx + 0xc]
cmp edi, ecx
jne 0x415595
cmp eax, edx
jne 0x415595
push 3
pop eax
mov word [esi + 0x22], ax
xor edi, edi
mov eax, dword [ebx + 8]
mov dword [esi + 0xac], eax
mov eax, 0x800
add dword [0x418d9c], eax
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], edi
cmp dword [0x4185ac], edi
je 0x41541c
push dword [ebx + 4]
push 0x4072e4
call dword [sym.imp.msvcrt.dll_printf]
pop ecx
pop ecx
jmp 0x41541c
xor eax, eax
cmp dword [0x419f60], eax
je 0x4153e6
cmp dword [0x419f68], eax
je 0x4153e5
push 0x407344
push eax
jmp 0x415590
inc eax
mov ecx, dword [ebp - 0x30]
mov edx, edi
mov word [esi + 0x22], ax
xor eax, eax
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], eax
mov dword [esi + 0xac], eax
lea eax, [ebp - 0x20]
push dword [ebx + 0xc]
push dword [ebx + 8]
push eax
push esi
call fcn.004158b7
mov ecx, eax
mov dword [ebp - 0x34], ecx
test ecx, ecx
je 0x415555
xor edi, edi
cmp dword [0x419ecc], 0
mov edx, edi
mov dword [ebp - 0x24], edx
mov eax, edi
je 0x415441
lea eax, [ebp - 0x24]
mov ecx, 0x418594
push eax
push ebx
lea edx, [ebp - 0x20]
call fcn.00412a01
mov edx, dword [ebp - 0x24]
test eax, eax
jne 0x415463
mov ecx, dword [ebx + 0x30]
mov edx, 0x800
xor edi, edi
mov eax, dword [ecx + 4]
mul edx
inc edi
push edx
mov dword [ecx + 8], edi
mov word [esi + 0x30], di
push eax
jmp 0x415546
mov edx, dword [edx + 0x20]
mov eax, dword [edx + 0x30]
inc dword [eax + 8]
mov eax, dword [edx + 0x30]
mov ecx, dword [ebx + 0x30]
mov eax, dword [eax + 4]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 0x30]
mov dword [eax + 8], edi
mov eax, dword [edx + 0x30]
mov edx, 0x800
mov eax, dword [eax + 4]
mul edx
mov ecx, edx
mov dword [ebp - 0x24], eax
push ecx
push eax
mov edx, esi
mov dword [ebp - 0x28], ecx
call fcn.00411aa4
inc word [esi + 0x30]
mov ecx, dword [esi + 0x40]
inc ecx
shl ecx, 0xb
add dword [0x419d48], ecx
adc dword [0x419d4c], edi
xor eax, eax
add dword [0x418d9c], ecx
inc eax
add dword [0x419d40], eax
adc dword [0x419d44], edi
cmp dword [0x419ed4], 0
je 0x4154f5
mov ecx, dword [esi + 0x40]
add ecx, eax
mov eax, dword [esi + 0x44]
adc eax, edi
shld eax, ecx, 0xb
push eax
shl ecx, 0xb
push ecx
push dword [ebx + 4]
push 0x407370
call dword [sym.imp.msvcrt.dll_printf]
add esp, 0x10
test dword [ebx + 0x14], 0x10000
je 0x415538
mov esi, dword [0x41812c]
mov edi, esi
push 0
pop eax
add edi, 0xffffffff
mov edx, eax
mov ecx, esi
not edi
adc edx, 0xffffffff
add ecx, 0x7fff
not edx
adc eax, eax
and edi, ecx
and edx, eax
xor eax, eax
push eax
push esi
push edx
push edi
call fcn.00417cd0
mov ecx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x3c]
add ecx, eax
jmp 0x41553b
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x30]
push dword [ebp - 0x28]
push dword [ebp - 0x24]
mov dword [eax], ecx
mov edx, 0x800
mov ecx, esi
call fcn.00411879
mov ecx, dword [ebp - 0x34]
cmp dword [0x419f4c], 0
je 0x415576
cmp dword [0x419f50], 0
jne 0x415576
mov eax, dword [esi + 0xec]
add eax, dword [0x418860]
mov dword [ebx + 0x10], eax
mov eax, ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00417690
leave
ret 8
push 0x4072b4
push 0
call fcn.00412682
push edx
push ecx
push edi
push 0x407300
push 0xffffffffffffffff
call fcn.00412682
int3