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

Disassembly:
sub esp, 0x54
mov eax, dword [0x848438]
xor edx, edx
inc eax
mov ecx, 0x2ab
mov dword [0x848438], eax
mov dword [esp + 0x2c], eax
push ebx
push ebp
mov ebp, dword [esp + 0x64]
push esi
mov esi, dword [esp + 0x74]
push edi
mov edi, dword [esp + 0x7c]
mov ebx, dword [esp + 0x70]
mov eax, dword [esi + eax*4]
xor eax, 0x1e10
mov dword [esp + 0x58], eax
imul eax, edi, 6
movzx eax, word [eax + ebp]
div ecx
mov ecx, dword [0x848430]
mov dword [esp + 0x20], eax
movzx eax, word [0x848408]
mov dword [esp + 0x50], eax
movzx eax, word [ebp + 0x14dc]
and eax, dword [0x848474]
mov dword [esp + 0x54], eax
mov eax, dword [ecx + edi*4]
mov dword [esp + 0x1c], eax
mov eax, ebx
cdq
idiv ebx
mov ecx, dword [0x84844c]
xor edx, edx
mov byte [esp + 0x7c], al
mov eax, dword [esp + 0x68]
movzx eax, byte [eax + 0x67d]
mov dword [esp + 0x60], eax
mov eax, ecx
div ebx
mov eax, dword [0x848444]
inc ebx
inc eax
mov dword [esp + 0x48], edx
mov dl, byte [0x84840a]
inc ecx
mov dword [0x848444], eax
mov dword [esp + 0x38], eax
movzx eax, word [ebp + 0x2530]
mov dword [esp + 0x44], eax
mov dword [0x84844c], ecx
movzx eax, dl
mov dword [esp + 0x5c], ecx
mov ecx, 0x1c90
mov dword [esp + 0x70], ebx
movzx ebp, word [ebp + eax*8]
mov eax, dword [0x848454]
or eax, dword [0x848478]
and ebp, dword [0x84846c]
mov dword [esp + 0x28], eax
mov eax, dword [0x84847c]
sub ecx, dword [eax + 0x4ad0]
mov eax, dword [0x848400]
mov dword [esp + 0x18], ecx
lea ecx, [edi + 2]
add ecx, ecx
mov eax, dword [eax + ecx*8]
xor eax, dword [0x848448]
dec dl
mov dword [esp + 0x34], eax
movzx eax, dl
mov byte [0x84840a], dl
movzx ecx, byte [eax + 0x18c4]
mov eax, dword [0x848434]
cmp ecx, dword [eax + ebx*4]
jae 0x4199ca
mov ecx, dword [esp + 0x20]
movzx eax, byte [0x84840b]
cmp eax, dword [ecx + 0x1ca0]
jge 0x419a27
mov ecx, dword [esp + 0x38]
xor edx, edx
movzx eax, byte [ecx + 0x1e6b]
div dword [esp + 0x74]
and edx, dword [0x5d62]
sub edx, dword [esi + ecx*4]
mov dword [esi + ecx*4], edx
movzx eax, word [0x848464]
movzx ecx, byte [0x84843f]
sub ecx, eax
mov eax, dword [0x848418]
and eax, 0x1a46
add ecx, 0x1eb1
imul ecx, dword [esp + 0x1c]
and dword [0x848450], eax
movzx eax, byte [esp + 0x7c]
add eax, dword [0x848470]
xor dword [0x848438], eax
mov dword [esp + 0x1c], ecx
mov eax, dword [0x84842c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], ecx
movzx eax, byte [eax + 0x1351]
cmp ecx, eax
jg 0x419c12
imul edx, edi, 3
lea ecx, [ecx*4 + 3]
imul eax, ebp, 3
push 0xfffffffffffffffd
add edx, dword [esp + 0x38]
add eax, dword [esp + 0x6c]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x34], eax
lea eax, [edx + 6]
lea eax, [eax + ebp*2]
mov dword [esp + 0x30], eax
lea edx, [edx + edi*2]
mov eax, dword [esp + 0x40]
add edx, 8
add ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, 0x151b
sub ecx, eax
mov dword [esp + 0x50], ecx
pop ecx
sub ecx, eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x68]
sub edx, 2
mov eax, 0x10d3
mov dword [esp + 0x38], edx
xor edx, edx
sub dword [esp + 0x24], 3
dec edi
mov eax, dword [eax]
movzx ecx, byte [ecx + eax*2]
mov eax, dword [esp + 0x28]
movzx eax, byte [eax + edi]
div ecx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x68]
mov word [ecx], ax
mov eax, dword [esp + 0x10]
movzx ecx, byte [edx + eax*4]
mov eax, dword [0x8483f8]
movzx eax, byte [eax + edx]
xor edx, edx
div ecx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x6c]
movzx ecx, byte [ecx]
xor eax, ecx
mov ecx, dword [esp + 0x10]
movzx ecx, word [edx + ecx*2]
cdq
idiv ecx
mov ecx, dword [esp + 0x74]
xor edx, edx
div dword [ecx*4 + 0x1313]
mov edx, dword [esp + 0x18]
mov dword [ecx*4 + 0x1313], eax
dec edx
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], edx
mov al, byte [eax + 0x1e38]
xor al, dl
add byte [ecx], al
add ecx, dword [esp + 0x40]
mov eax, dword [0x848430]
mov ecx, dword [ecx + eax]
add ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
imul ecx, edx
mov edx, dword [esp + 0x44]
mov eax, dword [eax]
movzx eax, byte [eax + edx]
xor ecx, eax
mov eax, dword [0x84846c]
add dword [0x84841c], ecx
mov ecx, dword [esp + 0x48]
mov dword [ecx + ebp*4], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
cmp dword [eax + ecx], 0x424
jge 0x419b76
mov eax, ebx
dec ebx
mov dword [esp + 0x70], ebx
cmp dword [0x848450], eax
jae 0x419bec
cmp dword [0x848458], ebp
jb 0x419bec
mov bl, byte [0x84843e]
mov eax, 0x10d3
mov ecx, dword [0x848460]
inc bl
mov byte [0x84843e], bl
mov edx, dword [eax]
mov eax, dword [esp + 0x2c]
sub dword [esp + 0x2c], 2
movzx eax, word [eax]
xor eax, dword [ecx + edx*4]
cdq
idiv dword [0x848404]
movzx eax, bl
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x28]
or edx, dword [esi + eax*4]
mov eax, edx
cdq
idiv dword [0x848428]
mov dword [0x848428], eax
mov eax, dword [esp + 0x30]
movzx ecx, byte [ecx + ebx*2]
movzx eax, byte [eax]
add eax, dword [0x848478]
cdq
idiv ecx
mov ecx, dword [esp + 0x28]
dec ebp
sub dword [esp + 0x30], 3
mov byte [ecx + ebx*2], al
mov eax, dword [0x84842c]
mov ecx, dword [esp + 0x10]
add dword [esp + 0x14], 4
inc ecx
mov edx, dword [esp + 0x38]
movzx eax, byte [eax + 0x1351]
mov dword [esp + 0x10], ecx
cmp ecx, eax
jle 0x419a92
mov ecx, dword [esp + 0x20]
dec edi
mov edx, dword [esp + 0x34]
movzx eax, byte [0x84843f]
xor eax, dword [0x84840c]
mov ecx, dword [ecx]
xor eax, edi
imul esi, ebp, 3
push 0x1e93
movzx ecx, byte [ecx + edx]
sub eax, ecx
movzx ecx, byte [esi + edx]
cdq
idiv ecx
mov eax, dword [esp + 0x38]
mov ecx, ebp
add ecx, ecx
mov byte [esi + eax], dl
mov eax, dword [0x84847c]
mov eax, dword [eax + ecx*8 + 0x54]
sub eax, dword [esp + 0x20]
push eax
call fcn.00418152
pop ecx
pop ecx
mov ecx, dword [esp + 0x3c]
mov dword [ebp*8 + 0x151e], eax
mov eax, dword [esp + 0x18]
movzx eax, byte [ecx + eax*2]
cmp ax, word [esp + 0x50]
jae 0x419c8c
mov eax, dword [0x848424]
mov ecx, dword [esp + 0x54]
mov eax, dword [eax + ebx*4]
cmp eax, dword [ecx + edi*4]
ja 0x419cc3
movzx eax, byte [esp + 0x7c]
cmp eax, 0x235
jb 0x419cc3
mov esi, dword [0x84845c]
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x58]
mov cl, byte [esi + eax]
mov eax, 0x10d3
dec esi
mov eax, dword [eax]
movzx edx, word [edx + eax*2]
movzx eax, cl
mov dword [0x84845c], esi
cmp ax, dx
jne 0x419d32
mov eax, dword [0x848440]
mov cl, bl
mov edx, dword [esp + 0x5c]
and ebx, 0xd4d
sub cl, byte [eax + 0x7ce0]
add cl, byte [esp + 0x1c]
mov al, byte [0x84843e]
xor al, cl
movzx ecx, al
mov byte [0x84843e], al
mov al, 0xcc
sub al, byte [ecx + edx]
mov byte [ecx + edx], al
xor edx, edx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x78]
mov eax, dword [eax]
add dword [ecx + eax*4 + 0x10], ebx
mov eax, dword [0x848478]
mov ecx, dword [esp + 0x60]
lea ecx, [ecx + eax*4]
mov eax, 0x85c
sub eax, dword [0x848428]
imul eax, dword [0x848450]
xor eax, 0x1dda
div dword [ecx]
mov dword [ecx], eax
dec dword [0x848428]
pop edi
pop esi
pop ebp
mov eax, 0x12c0
pop ebx
add esp, 0x54
ret