Function at 0x41564f
Capabilities:
Hash data with md5

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [0x419074]
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.0041626d
cmp dword [0x41aeac], 0
je 0x4156b8
cmp dword [0x41af48], 0
jne 0x41599e
mov eax, dword [ebx + 8]
mov ecx, 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 - 0x10], eax
mov dword [ebp - 0xc], ecx
mov edx, esi
mov ecx, 0x800
call fcn.004125fe
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 [0x419840]
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 0x30]
mov dword [eax + 4], ecx
xor eax, eax
cmp dword [0x41af34], eax
je 0x415701
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
cmp edx, eax
ja 0x415701
cmp ecx, 0x718
jbe 0x415711
mov ecx, dword [ebx + 8]
mov eax, ecx
mov edx, dword [ebx + 0xc]
or eax, edx
jne 0x4157dd
mov edi, eax
mov dword [ebp - 0x24], edi
cmp edx, eax
ja 0x41571e
cmp ecx, eax
jbe 0x415790
mov ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x40]
push eax
lea edx, [ebp - 0x2c]
call fcn.004134ac
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 [0x41aeac], 0
je 0x415780
lea eax, [edi + 0x3f]
and eax, 0xffffffc0
mov dword [ebp - 0x28], eax
cmp eax, edi
je 0x415774
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.00417847
mov ecx, dword [ebp - 0x2c]
call fcn.0041275a
mov ecx, dword [ebx + 8]
xor eax, eax
mov edx, dword [ebx + 0xc]
cmp edi, ecx
jne 0x4159aa
cmp eax, edx
jne 0x4159aa
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 [0x419d7c], eax
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], edi
cmp dword [0x41958c], edi
je 0x415831
push dword [ebx + 4]
push 0x4072d4
call dword [sym.imp.msvcrt.dll_printf]
pop ecx
pop ecx
jmp 0x415831
xor eax, eax
cmp dword [0x41af40], eax
je 0x4157fb
cmp dword [0x41af48], eax
je 0x4157fa
push 0x407334
push eax
jmp 0x4159a5
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.00415cde
mov ecx, eax
mov dword [ebp - 0x34], ecx
test ecx, ecx
je 0x41596a
xor edi, edi
cmp dword [0x41aeac], 0
mov edx, edi
mov dword [ebp - 0x24], edx
mov eax, edi
je 0x415856
lea eax, [ebp - 0x24]
mov ecx, 0x419574
push eax
push ebx
lea edx, [ebp - 0x20]
call fcn.00412d8b
mov edx, dword [ebp - 0x24]
test eax, eax
jne 0x415878
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 0x41595b
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.00411d8e
inc word [esi + 0x30]
mov ecx, dword [esi + 0x40]
inc ecx
shl ecx, 0xb
add dword [0x41ad28], ecx
adc dword [0x41ad2c], edi
xor eax, eax
add dword [0x419d7c], ecx
inc eax
add dword [0x41ad20], eax
adc dword [0x41ad24], edi
cmp dword [0x41aeb4], 0
je 0x41590a
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 0x407360
call dword [sym.imp.msvcrt.dll_printf]
add esp, 0x10
test dword [ebx + 0x14], 0x10000
je 0x41594d
mov esi, dword [0x41912c]
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.00418210
mov ecx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x3c]
add ecx, eax
jmp 0x415950
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.00411b65
mov ecx, dword [ebp - 0x34]
cmp dword [0x41af2c], 0
je 0x41598b
cmp dword [0x41af30], 0
jne 0x41598b
mov eax, dword [esi + 0xec]
add eax, dword [0x419840]
mov dword [ebx + 0x10], eax
mov eax, ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00417b60
leave
ret 8
push 0x4072a4
push 0
call fcn.004129be
push edx
push ecx
push edi
push 0x4072f0
push 0xffffffffffffffff
call fcn.004129be
int3