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

Disassembly:
sub esp, 0x30
mov ecx, dword [0x51476c]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x50]
push ebx
push ebp
imul eax, dword [eax + ecx*4 + 0xc], 0x1534
mov ebx, dword [0x514780]
push esi
mov si, word [0x5147a4]
push edi
mov dword [esp + 0x10], eax
mov eax, dword [0x51479c]
movzx edi, word [esp + 0x58]
movzx ebp, byte [esp + 0x50]
mov dword [esp + 0x24], ebx
mov eax, dword [eax + 0x3e38]
inc dword [0x51478c]
mov dword [esp + 0x34], eax
movzx eax, si
mov dword [esp + 0x1c], ebp
movzx eax, byte [eax + edx]
xor eax, 0x2de
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x5c]
movzx eax, ax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x4c]
imul edx, dword [eax + edi*4 + 0x10], 0x1989
mov eax, dword [eax + ecx*8]
mov dword [esp + 0x18], eax
mov eax, 0x1989
mov ecx, dword [0x514774]
mov dword [esp + 0x28], edx
cdq
idiv ebx
xor edx, edx
mov dword [esp + 0x38], eax
imul eax, dword [ecx + 0x6c30], 0x871
mov ecx, dword [0x514794]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x60]
movzx eax, byte [eax + ebp*4]
mov dword [esp + 0x3c], eax
mov eax, dword [0x514768]
movzx eax, byte [eax + 0x1dd5]
div edi
xor edx, edx
mov edi, dword [esp + 0x44]
mov ebx, eax
mov eax, 0x5ad
div dword [ecx + 0x723c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x60]
mov ecx, dword [ecx]
movzx eax, byte [eax + ebp + 0xe]
mov dword [esp + 0x50], eax
movzx ecx, word [edi + ecx*4]
cmp eax, ecx
jne 0x41151d
mov ecx, dword [esp + 0x5c]
movzx ebp, cx
mov ecx, dword [esp + 0x54]
mov edx, dword [0x514768]
add edx, eax
mov cl, byte [ecx + eax*4]
xor cl, al
movzx eax, si
mov esi, dword [esp + 0x50]
or cl, byte [ebx + eax*4 + 4]
xor byte [edx], cl
mov eax, dword [0x514778]
mov ecx, dword [esp + 0x28]
inc eax
mov edx, dword [esp + 0x2c]
mov dword [0x514778], eax
mov ecx, dword [ecx]
mov eax, dword [edx + eax*4]
imul eax, dword [edx + ecx*4 + 0x70]
mov dword [edx + ecx*4 + 0x70], eax
mov eax, dword [0x514784]
movzx ecx, word [edi + eax*2]
mov eax, esi
cdq
idiv esi
mov eax, dword [esp + 0x14]
or ecx, edx
mov edx, dword [esp + 0x30]
xor dword [edx + ebp*4 + 0x20], ecx
inc eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], eax
movzx ebp, ax
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 0x10], ecx
movzx eax, word [edi + eax*2]
add eax, dword [edx + ebp*4]
sub eax, dword [0x514778]
inc esi
mov dword [0x514778], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x50], esi
mov eax, dword [eax]
movzx eax, word [edi + eax*4]
cmp esi, eax
mov si, word [0x5147a4]
jne 0x411519
mov eax, dword [esp + 0x50]
jmp 0x411474
mov ebp, dword [esp + 0x1c]
movzx eax, si
mov ecx, dword [ebx + eax*4]
cmp ecx, 0x230
jne 0x41154f
mov esi, dword [esp + 0x24]
movzx ebp, word [esp + 0x58]
mov edx, dword [esi + ebp*4 + 0x78]
movzx eax, word [edi + ecx*2]
add edx, eax
inc ecx
mov dword [esi + ebp*4 + 0x78], edx
cmp ecx, 0x230
je 0x411538
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x18]
and byte [eax + ebp*4], 0xb4
mov eax, dword [esp + 0x14]
mov esi, dword [0x514784]
movzx ecx, word [0x5147a4]
inc esi
movzx ebp, ax
mov eax, dword [esp + 0x34]
mov dword [0x514784], esi
mov dword [esp + 0x58], ebp
mov eax, dword [eax]
movzx eax, word [edx + eax*8]
xor edx, edx
imul eax, dword [ebx + ecx*4]
mov ecx, dword [esp + 0x54]
div esi
mov esi, dword [esp + 0x38]
add dword [ecx + ebp*4 + 8], eax
mov cx, word [0x5147a4]
movzx eax, cx
inc cx
mov esi, dword [esi + eax*4 + 0x18]
mov word [0x5147a4], cx
movzx eax, word [edi + 0x3b4a]
cmp esi, eax
jge 0x411662
mov eax, dword [esp + 0x18]
lea edi, [ebx + esi*4]
mov edx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x10]
lea eax, [eax + edx*8]
add eax, 0x28
sub ebp, ebx
mov dword [esp + 0x50], eax
mov eax, esi
movzx ecx, cx
cdq
mov ebx, 0x1b42
idiv ebx
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
mov word [edx + ecx*2], ax
mov eax, dword [edi + ebp]
cdq
idiv dword [ebx + esi*8]
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x1c]
add ecx, 8
mov dword [esp + 0x50], ecx
movzx eax, word [ecx]
mov ecx, dword [esp + 0x4c]
imul edx, eax
mov eax, dword [0x514794]
sub edx, dword [eax + esi*4]
add dword [ecx + ebx*4], edx
xor edx, edx
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
movzx eax, word [eax + eax + 0x21f1]
div dword [ecx + 0x5034]
mov eax, dword [esp + 0x48]
sub edx, dword [eax + ebx*4 + 4]
mov eax, dword [esp + 0x44]
or edx, ebx
xor dword [edi], edx
inc esi
lea edi, [edi + 4]
movzx eax, word [eax + 0x3b4a]
cmp esi, eax
jge 0x41165e
mov cx, word [0x5147a4]
jmp 0x4115d9
mov ebp, dword [esp + 0x58]
mov eax, dword [0x514768]
pop edi
pop esi
movzx eax, byte [eax + ebp]
pop ebp
xor eax, 0x17b3
pop ebx
add esp, 0x30
ret