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

Disassembly:
push ebp
push edi
push esi
push ebx
add esp, 0xffffff80
mov ebp, dword [esp + 0x9c]
lea eax, [ebp + 2]
movsx edx, word [ebp]
mov dword [esp + 0x7c], eax
movsx eax, word [ebp + 4]
lea ecx, [ebp + 4]
movsx ebx, word [ebp + 2]
movsx esi, word [ebp + 6]
mov dword [esp + 0x78], ecx
lea ecx, [ebp + 6]
mov dword [esp + 0x74], ecx
lea ecx, [eax + edx]
sub edx, eax
imul ecx, ecx, 0x5a82
imul eax, ebx, 0x7642
imul edi, esi, 0x30fc
imul edx, edx, 0x5a82
imul esi, esi, 0x7642
add ecx, 0x400
imul ebx, ebx, 0x30fc
add edi, eax
lea eax, [ecx + edi]
add edx, 0x400
sar eax, 0xb
sub ecx, edi
sub ebx, esi
movsx esi, word [ebp + 0x16]
mov word [ebp], ax
lea eax, [edx + ebx]
sub edx, ebx
sar eax, 0xb
movsx ebx, word [ebp + 0x12]
sar edx, 0xb
mov word [ebp + 2], ax
movsx eax, word [ebp + 0x14]
sar ecx, 0xb
mov word [ebp + 4], dx
movsx edx, word [ebp + 0x10]
imul edi, esi, 0x30fc
mov word [ebp + 6], cx
imul esi, esi, 0x7642
lea ecx, [eax + edx]
sub edx, eax
imul ecx, ecx, 0x5a82
imul eax, ebx, 0x7642
imul edx, edx, 0x5a82
imul ebx, ebx, 0x30fc
add ecx, 0x400
add edi, eax
lea eax, [ecx + edi]
add edx, 0x400
sub ebx, esi
movsx esi, word [ebp + 0x26]
sar eax, 0xb
mov word [ebp + 0x10], ax
lea eax, [edx + ebx]
sub edx, ebx
sar eax, 0xb
movsx ebx, word [ebp + 0x22]
sar edx, 0xb
sub ecx, edi
mov word [ebp + 0x12], ax
movsx eax, word [ebp + 0x24]
sar ecx, 0xb
mov word [ebp + 0x14], dx
movsx edx, word [ebp + 0x20]
imul edi, esi, 0x30fc
mov word [ebp + 0x16], cx
imul esi, esi, 0x7642
lea ecx, [eax + edx]
sub edx, eax
imul ecx, ecx, 0x5a82
imul eax, ebx, 0x7642
imul edx, edx, 0x5a82
imul ebx, ebx, 0x30fc
add ecx, 0x400
add edi, eax
lea eax, [ecx + edi]
add edx, 0x400
sub ebx, esi
movsx esi, word [ebp + 0x36]
sub ecx, edi
sar eax, 0xb
mov word [ebp + 0x20], ax
lea eax, [edx + ebx]
sub edx, ebx
sar eax, 0xb
movsx ebx, word [ebp + 0x32]
sar edx, 0xb
mov word [ebp + 0x22], ax
movsx eax, word [ebp + 0x34]
sar ecx, 0xb
mov word [ebp + 0x24], dx
movsx edx, word [ebp + 0x30]
imul edi, esi, 0x30fc
mov word [ebp + 0x26], cx
imul esi, esi, 0x7642
lea ecx, [eax + edx]
sub edx, eax
imul ecx, ecx, 0x5a82
imul eax, ebx, 0x7642
imul edx, edx, 0x5a82
imul ebx, ebx, 0x30fc
add ecx, 0x400
add edi, eax
lea eax, [ecx + edi]
add edx, 0x400
sub ebx, esi
sar eax, 0xb
mov word [ebp + 0x30], ax
lea eax, [edx + ebx]
sub edx, ebx
sar eax, 0xb
movsx ebx, word [ebp + 0x42]
sar edx, 0xb
movsx esi, word [ebp + 0x46]
sub ecx, edi
mov word [ebp + 0x32], ax
movsx eax, word [ebp + 0x44]
sar ecx, 0xb
mov word [ebp + 0x34], dx
movsx edx, word [ebp + 0x40]
mov word [ebp + 0x36], cx
imul edi, esi, 0x30fc
imul esi, esi, 0x7642
lea ecx, [eax + edx]
sub edx, eax
imul ecx, ecx, 0x5a82
imul eax, ebx, 0x7642
imul edx, edx, 0x5a82
imul ebx, ebx, 0x30fc
add ecx, 0x400
add edi, eax
lea eax, [ecx + edi]
add edx, 0x400
sub ebx, esi
movsx esi, word [ebp + 0x56]
sub ecx, edi
sar eax, 0xb
mov dword [esp + 0xc], eax
sar ecx, 0xb
mov word [ebp + 0x40], ax
lea eax, [edx + ebx]
sub edx, ebx
sar eax, 0xb
movsx ebx, word [ebp + 0x52]
sar edx, 0xb
mov word [ebp + 0x42], ax
movsx eax, word [ebp + 0x54]
imul edi, esi, 0x30fc
mov word [ebp + 0x44], dx
movsx edx, word [ebp + 0x50]
imul esi, esi, 0x7642
mov word [ebp + 0x46], cx
lea ecx, [eax + edx]
sub edx, eax
imul ecx, ecx, 0x5a82
imul eax, ebx, 0x7642
imul edx, edx, 0x5a82
imul ebx, ebx, 0x30fc
add ecx, 0x400
add edi, eax
lea eax, [ecx + edi]
add edx, 0x400
sub ebx, esi
movsx esi, word [ebp + 0x66]
sar eax, 0xb
mov dword [esp + 8], eax
mov word [ebp + 0x50], ax
lea eax, [edx + ebx]
sar eax, 0xb
sub edx, ebx
movsx ebx, word [ebp + 0x62]
sar edx, 0xb
sub ecx, edi
mov word [ebp + 0x52], ax
movsx eax, word [ebp + 0x64]
sar ecx, 0xb
mov word [ebp + 0x54], dx
movsx edx, word [ebp + 0x60]
imul edi, esi, 0x30fc
mov word [ebp + 0x56], cx
imul esi, esi, 0x7642
lea ecx, [eax + edx]
sub edx, eax
imul ecx, ecx, 0x5a82
imul eax, ebx, 0x7642
imul edx, edx, 0x5a82
imul ebx, ebx, 0x30fc
add ecx, 0x400
add edi, eax
lea eax, [ecx + edi]
add edx, 0x400
sub ebx, esi
movsx esi, word [ebp + 0x76]
sub ecx, edi
sar eax, 0xb
mov dword [esp + 4], eax
sar ecx, 0xb
mov word [ebp + 0x60], ax
lea eax, [edx + ebx]
sub edx, ebx
sar eax, 0xb
movsx ebx, word [ebp + 0x72]
sar edx, 0xb
mov word [ebp + 0x62], ax
movsx eax, word [ebp + 0x74]
imul edi, esi, 0x30fc
mov word [ebp + 0x64], dx
movsx edx, word [ebp + 0x70]
imul esi, esi, 0x7642
mov word [ebp + 0x66], cx
lea ecx, [eax + edx]
sub edx, eax
imul ecx, ecx, 0x5a82
imul eax, ebx, 0x7642
imul edx, edx, 0x5a82
imul ebx, ebx, 0x30fc
add ecx, 0x400
add edi, eax
lea eax, [ecx + edi]
add edx, 0x400
sub ebx, esi
sar eax, 0xb
mov dword [esp], eax
mov word [ebp + 0x70], ax
lea eax, [edx + ebx]
sar eax, 0xb
sub edx, ebx
sar edx, 0xb
sub ecx, edi
mov word [ebp + 0x74], dx
movsx edx, word [ebp]
sar ecx, 0xb
mov word [ebp + 0x76], cx
movsx ecx, word [ebp + 0x20]
mov word [ebp + 0x72], ax
mov eax, edx
shl eax, 0xe
sub eax, edx
imul edx, ecx, 0x539f
add eax, 0x7ffe0
add edx, eax
mov dword [esp + 0x48], edx
imul edx, ecx, 0x22a3
add edx, eax
mov dword [esp + 0x54], edx
imul edx, ecx, 0xffffdd5d
imul ecx, ecx, 0xffffac61
add edx, eax
add ecx, eax
mov dword [esp + 0x60], edx
movsx edx, word [ebp + 0x30]
mov dword [esp + 0x6c], ecx
movsx ecx, word [ebp + 0x10]
imul eax, edx, 0x4b42
imul ebx, ecx, 0x58c5
imul esi, ecx, 0x4b42
imul edi, ecx, 0x3249
imul ecx, ecx, 0x11a8
add eax, ebx
mov dword [esp + 0x30], eax
imul eax, edx, 0xffffee58
add eax, esi
mov dword [esp + 0x3c], eax
imul eax, edx, 0xffffa73b
imul edx, edx, 0xffffcdb7
lea esi, [eax + edi]
movzx eax, word [esp + 0xc]
lea ebx, [edx + ecx]
test ax, ax
je 0x838460
cwde
mov edx, eax
shl edx, 0xe
sub edx, eax
imul eax, eax, 0xffffc001
add dword [esp + 0x48], edx
add dword [esp + 0x54], eax
add dword [esp + 0x60], eax
add dword [esp + 0x6c], edx
movzx eax, word [esp + 8]
test ax, ax
je 0x838491
movsx edx, ax
imul eax, edx, 0x3249
add dword [esp + 0x30], eax
imul eax, edx, 0xffffa73b
add dword [esp + 0x3c], eax
imul eax, edx, 0x11a8
imul edx, edx, 0x4b42
add esi, eax
add ebx, edx
movzx eax, word [esp + 4]
test ax, ax
je 0x8384c6
movsx edx, ax
imul eax, edx, 0x22a3
add dword [esp + 0x48], eax
imul eax, edx, 0xffffac61
add dword [esp + 0x54], eax
imul eax, edx, 0x539f
imul edx, edx, 0xffffdd5d
add dword [esp + 0x60], eax
add dword [esp + 0x6c], edx
movzx eax, word [esp]
test ax, ax
je 0x8384f6
movsx edx, ax
imul eax, edx, 0x11a8
add dword [esp + 0x30], eax
imul eax, edx, 0xffffcdb7
add dword [esp + 0x3c], eax
imul eax, edx, 0x4b42
imul edx, edx, 0xffffa73b
add esi, eax
add ebx, edx
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x48]
movzx edx, byte [ecx]
sar eax, 0x14
movzx eax, byte [eax + edx + 0xe15980]
mov edx, ecx
mov byte [ecx], al
mov eax, dword [esp + 0x3c]
add edx, dword [esp + 0x98]
add eax, dword [esp + 0x54]
movzx ecx, byte [edx]
sar eax, 0x14
movzx eax, byte [eax + ecx + 0xe15980]
mov byte [edx], al
mov ecx, dword [esp + 0x60]
add edx, dword [esp + 0x98]
lea eax, [esi + ecx]
movzx ecx, byte [edx]
sar eax, 0x14
movzx eax, byte [eax + ecx + 0xe15980]
mov byte [edx], al
mov ecx, dword [esp + 0x6c]
add edx, dword [esp + 0x98]
lea eax, [ebx + ecx]
movzx ecx, byte [edx]
sar eax, 0x14
movzx eax, byte [eax + ecx + 0xe15980]
mov byte [edx], al
add edx, dword [esp + 0x98]
sub dword [esp + 0x6c], ebx
sar dword [esp + 0x6c], 0x14
movzx eax, byte [edx]
mov ecx, dword [esp + 0x6c]
movzx eax, byte [ecx + eax + 0xe15980]
mov byte [edx], al
add edx, dword [esp + 0x98]
sub dword [esp + 0x60], esi
sar dword [esp + 0x60], 0x14
movzx eax, byte [edx]
mov ecx, dword [esp + 0x60]
movzx eax, byte [ecx + eax + 0xe15980]
mov byte [edx], al
mov eax, dword [esp + 0x3c]
add edx, dword [esp + 0x98]
sub dword [esp + 0x54], eax
sar dword [esp + 0x54], 0x14
movzx eax, byte [edx]
mov ecx, dword [esp + 0x54]
movzx eax, byte [ecx + eax + 0xe15980]
mov byte [edx], al
mov eax, dword [esp + 0x30]
add edx, dword [esp + 0x98]
sub dword [esp + 0x48], eax
sar dword [esp + 0x48], 0x14
movzx eax, byte [edx]
mov ecx, dword [esp + 0x48]
movzx eax, byte [ecx + eax + 0xe15980]
mov byte [edx], al
mov eax, dword [esp + 0x94]
movsx edx, word [ebp + 2]
add eax, 1
mov dword [esp + 0x28], eax
mov eax, edx
shl eax, 0xe
sub eax, edx
mov edx, dword [esp + 0x7c]
add eax, 0x7ffe0
movsx ecx, word [edx + 0x20]
imul edx, ecx, 0x539f
add edx, eax
mov dword [esp + 0x4c], edx
imul edx, ecx, 0x22a3
add edx, eax
mov dword [esp + 0x58], edx
imul edx, ecx, 0xffffdd5d
imul ecx, ecx, 0xffffac61
add edx, eax
add ecx, eax
mov dword [esp + 0x64], edx
mov dword [esp + 0x70], ecx
mov eax, dword [esp + 0x7c]
movsx ecx, word [eax + 0x10]
movsx edx, word [eax + 0x30]
imul ebx, ecx, 0x58c5
imul eax, edx, 0x4b42
imul esi, ecx, 0x4b42
imul edi, ecx, 0x3249
imul ecx, ecx, 0x11a8
add eax, ebx
mov dword [esp + 0x34], eax
imul eax, edx, 0xffffee58
add eax, esi
mov dword [esp + 0x40], eax
imul eax, edx, 0xffffa73b
imul edx, edx, 0xffffcdb7
lea esi, [eax + edi]
lea ebx, [edx + ecx]
mov edx, dword [esp + 0x7c]
movzx eax, word [edx + 0x40]
test ax, ax
je 0x8386cd
cwde
mov edx, eax
shl edx, 0xe
sub edx, eax
imul eax, eax, 0xffffc001
add dword [esp + 0x4c], edx
add dword [esp + 0x58], eax
add dword [esp + 0x64], eax
add dword [esp + 0x70], edx
mov ecx, dword [esp + 0x7c]
movzx eax, word [ecx + 0x50]
test ax, ax
je 0x838701
movsx edx, ax
imul eax, edx, 0x3249
add dword [esp + 0x34], eax
imul eax, edx, 0xffffa73b
add dword [esp + 0x40], eax
imul eax, edx, 0x11a8
imul edx, edx, 0x4b42
add esi, eax
add ebx, edx
mov edx, dword [esp + 0x7c]
movzx eax, word [edx + 0x60]
test ax, ax
je 0x838739
movsx edx, ax
imul eax, edx, 0x22a3
add dword [esp + 0x4c], eax
imul eax, edx, 0xffffac61
add dword [esp + 0x58], eax
imul eax, edx, 0x539f
imul edx, edx, 0xffffdd5d
add dword [esp + 0x64], eax
add dword [esp + 0x70], edx
mov ecx, dword [esp + 0x7c]
movzx eax, word [ecx + 0x70]
test ax, ax
je 0x83876d
movsx edx, ax
imul eax, edx, 0x11a8
add dword [esp + 0x34], eax
imul eax, edx, 0xffffcdb7
add dword [esp + 0x40], eax
imul eax, edx, 0x4b42
imul edx, edx, 0xffffa73b
add esi, eax
add ebx, edx
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x34]
add eax, dword [esp + 0x4c]
movzx edx, byte [ecx + 1]
sar eax, 0x14
movzx eax, byte [eax + edx + 0xe15980]
mov byte [ecx + 1], al
mov edx, dword [esp + 0x28]
add edx, dword [esp + 0x98]
mov eax, dword [esp + 0x40]
add eax, dword [esp + 0x58]
movzx ecx, byte [edx]
sar eax, 0x14
movzx eax, byte [eax + ecx + 0xe15980]
mov byte [edx], al
mov ecx, dword [esp + 0x64]
add edx, dword [esp + 0x98]
lea eax, [esi + ecx]
movzx ecx, byte [edx]
sar eax, 0x14
movzx eax, byte [eax + ecx + 0xe15980]
mov byte [edx], al
mov ecx, dword [esp + 0x70]
add edx, dword [esp + 0x98]
lea eax, [ebx + ecx]
movzx ecx, byte [edx]
sar eax, 0x14
movzx eax, byte [eax + ecx + 0xe15980]
mov byte [edx], al
add edx, dword [esp + 0x98]
sub dword [esp + 0x70], ebx
sar dword [esp + 0x70], 0x14
movzx eax, byte [edx]
mov ecx, dword [esp + 0x70]
movzx eax, byte [ecx + eax + 0xe15980]
mov byte [edx], al
add edx, dword [esp + 0x98]
sub dword [esp + 0x64], esi
sar dword [esp + 0x64], 0x14
movzx eax, byte [edx]
mov ecx, dword [esp + 0x64]
movzx eax, byte [ecx + eax + 0xe15980]
mov byte [edx], al
mov eax, dword [esp + 0x40]
add edx, dword [esp + 0x98]
sub dword [esp + 0x58], eax
sar dword [esp + 0x58], 0x14
movzx eax, byte [edx]
mov ecx, dword [esp + 0x58]
movzx eax, byte [ecx + eax + 0xe15980]
mov byte [edx], al
mov eax, dword [esp + 0x34]
add edx, dword [esp + 0x98]
sub dword [esp + 0x4c], eax
sar dword [esp + 0x4c], 0x14
movzx eax, byte [edx]
mov ecx, dword [esp + 0x4c]
movzx eax, byte [ecx + eax + 0xe15980]
mov byte [edx], al
mov eax, dword [esp + 0x94]
movsx edx, word [ebp + 4]
add eax, 2
mov dword [esp + 0x2c], eax
mov eax, edx
shl eax, 0xe
sub eax, edx
mov edx, dword [esp + 0x78]
add eax, 0x7ffe0
movsx ecx, word [edx + 0x20]
imul edx, ecx, 0x539f
add edx, eax
mov dword [esp + 0x50], edx
imul edx, ecx, 0x22a3
add edx, eax
mov dword [esp + 0x5c], edx
imul edx, ecx, 0xffffdd5d
imul ecx, ecx, 0xffffac61
add edx, eax
lea ebp, [ecx + eax]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x68], edx
movsx ecx, word [eax + 0x10]
movsx edx, word [eax + 0x30]
imul ebx, ecx, 0x58c5
imul esi, ecx, 0x4b42
imul eax, edx, 0x4b42
imul edi, ecx, 0x3249
imul ecx, ecx, 0x11a8
add eax, ebx
mov dword [esp + 0x38], eax
imul eax, edx, 0xffffee58
add eax, esi
mov dword [esp + 0x44], eax
imul eax, edx, 0xffffa73b
imul edx, edx, 0xffffcdb7
lea esi, [eax + edi]
lea ebx, [edx + ecx]
mov edx, dword [esp + 0x78]
movzx eax, word [edx + 0x40]
test ax, ax
je 0x838943
cwde
mov edx, eax
shl edx, 0xe
sub edx, eax
imul eax, eax, 0xffffc001
add ebp, edx
add dword [esp + 0x50], edx
add dword [esp + 0x5c], eax
add dword [esp + 0x68], eax
mov ecx, dword [esp + 0x78]
movzx eax, word [ecx + 0x50]
test ax, ax
je 0x838977
movsx edx, ax
imul eax, edx, 0x3249
add dword [esp + 0x38], eax
imul eax, edx, 0xffffa73b
add dword [esp + 0x44], eax
imul eax, edx, 0x11a8
imul edx, edx, 0x4b42
add esi, eax
add ebx, edx
mov edx, dword [esp + 0x78]
movzx eax, word [edx + 0x60]
test ax, ax
je 0x8389ad
movsx edx, ax
imul eax, edx, 0x22a3
add dword [esp + 0x50], eax
imul eax, edx, 0xffffac61
add dword [esp + 0x5c], eax
imul eax, edx, 0x539f
imul edx, edx, 0xffffdd5d
add dword [esp + 0x68], eax
add ebp, edx
mov ecx, dword [esp + 0x78]
movzx eax, word [ecx + 0x70]
test ax, ax
je 0x8389e1
movsx edx, ax
imul eax, edx, 0x11a8
add dword [esp + 0x38], eax
imul eax, edx, 0xffffcdb7
add dword [esp + 0x44], eax
imul eax, edx, 0x4b42
imul edx, edx, 0xffffa73b
add esi, eax
add ebx, edx
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x38]
add eax, dword [esp + 0x50]
movzx edx, byte [ecx + 2]
sar eax, 0x14
movzx eax, byte [eax + edx + 0xe15980]
mov byte [ecx + 2], al
mov edx, dword [esp + 0x2c]
add edx, dword [esp + 0x98]
mov eax, dword [esp + 0x44]
add eax, dword [esp + 0x5c]
movzx ecx, byte [edx]
sar eax, 0x14
movzx eax, byte [eax + ecx + 0xe15980]
mov byte [edx], al
mov ecx, dword [esp + 0x68]
add edx, dword [esp + 0x98]
lea eax, [esi + ecx]
movzx ecx, byte [edx]
sar eax, 0x14
movzx eax, byte [eax + ecx + 0xe15980]
mov byte [edx], al
lea eax, [ebx + ebp]
sub ebp, ebx
add edx, dword [esp + 0x98]
sar eax, 0x14
sar ebp, 0x14
movzx ecx, byte [edx]
movzx eax, byte [eax + ecx + 0xe15980]
mov byte [edx], al
add edx, dword [esp + 0x98]
movzx eax, byte [edx]
movzx eax, byte [ebp + eax + 0xe15980]
mov byte [edx], al
add edx, dword [esp + 0x98]
sub dword [esp + 0x68], esi
sar dword [esp + 0x68], 0x14
movzx eax, byte [edx]
mov ecx, dword [esp + 0x68]
movzx eax, byte [ecx + eax + 0xe15980]
mov byte [edx], al
mov eax, dword [esp + 0x44]
add edx, dword [esp + 0x98]
sub dword [esp + 0x5c], eax
sar dword [esp + 0x5c], 0x14
movzx eax, byte [edx]
mov ecx, dword [esp + 0x5c]
movzx eax, byte [ecx + eax + 0xe15980]
mov byte [edx], al
mov eax, dword [esp + 0x38]
add edx, dword [esp + 0x98]
sub dword [esp + 0x50], eax
sar dword [esp + 0x50], 0x14
movzx eax, byte [edx]
mov ecx, dword [esp + 0x50]
movzx eax, byte [ecx + eax + 0xe15980]
mov byte [edx], al
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x94]
movsx edx, word [ecx]
movsx ecx, word [ecx + 0x20]
add eax, 3
mov dword [esp + 0x10], eax
mov eax, edx
shl eax, 0xe
sub eax, edx
imul edx, ecx, 0x539f
add eax, 0x7ffe0
add edx, eax
mov dword [esp + 0x24], edx
imul edx, ecx, 0x22a3
add edx, eax
mov dword [esp + 0x20], edx
imul edx, ecx, 0xffffdd5d
imul ecx, ecx, 0xffffac61
add edx, eax
lea ebp, [ecx + eax]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c], edx
movsx ecx, word [eax + 0x10]
movsx edx, word [eax + 0x30]
imul ebx, ecx, 0x58c5
imul esi, ecx, 0x4b42
imul eax, edx, 0x4b42
imul edi, ecx, 0x3249
imul ecx, ecx, 0x11a8
add eax, ebx
mov dword [esp + 0x18], eax
imul eax, edx, 0xffffee58
add eax, esi
mov dword [esp + 0x14], eax
imul eax, edx, 0xffffa73b
imul edx, edx, 0xffffcdb7
lea esi, [eax + edi]
lea ebx, [edx + ecx]
mov edx, dword [esp + 0x74]
movzx eax, word [edx + 0x40]
test ax, ax
je 0x838baa
cwde
mov edx, eax
shl edx, 0xe
sub edx, eax
imul eax, eax, 0xffffc001
add ebp, edx
add dword [esp + 0x24], edx
add dword [esp + 0x20], eax
add dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x74]
movzx eax, word [ecx + 0x50]
test ax, ax
je 0x838bde
movsx edx, ax
imul eax, edx, 0x3249
add dword [esp + 0x18], eax
imul eax, edx, 0xffffa73b
add dword [esp + 0x14], eax
imul eax, edx, 0x11a8
imul edx, edx, 0x4b42
add esi, eax
add ebx, edx
mov edx, dword [esp + 0x74]
movzx eax, word [edx + 0x60]
test ax, ax
je 0x838c14
movsx edx, ax
imul eax, edx, 0x22a3
add dword [esp + 0x24], eax
imul eax, edx, 0xffffac61
add dword [esp + 0x20], eax
imul eax, edx, 0x539f
imul edx, edx, 0xffffdd5d
add dword [esp + 0x1c], eax
add ebp, edx
mov ecx, dword [esp + 0x74]
movzx eax, word [ecx + 0x70]
test ax, ax
je 0x838c48
movsx edx, ax
imul eax, edx, 0x11a8
add dword [esp + 0x18], eax
imul eax, edx, 0xffffcdb7
add dword [esp + 0x14], eax
imul eax, edx, 0x4b42
imul edx, edx, 0xffffa73b
add esi, eax
add ebx, edx
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x24]
movzx edx, byte [ecx + 3]
sar eax, 0x14
movzx eax, byte [eax + edx + 0xe15980]
mov byte [ecx + 3], al
mov edx, dword [esp + 0x10]
add edx, dword [esp + 0x98]
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x20]
movzx ecx, byte [edx]
sar eax, 0x14
movzx eax, byte [eax + ecx + 0xe15980]
mov byte [edx], al
mov ecx, dword [esp + 0x1c]
add edx, dword [esp + 0x98]
lea eax, [esi + ecx]
movzx ecx, byte [edx]
sar eax, 0x14
movzx eax, byte [eax + ecx + 0xe15980]
mov byte [edx], al
lea eax, [ebx + ebp]
sub ebp, ebx
add edx, dword [esp + 0x98]
sar eax, 0x14
sar ebp, 0x14
movzx ecx, byte [edx]
movzx eax, byte [eax + ecx + 0xe15980]
mov byte [edx], al
add edx, dword [esp + 0x98]
movzx eax, byte [edx]
movzx eax, byte [ebp + eax + 0xe15980]
mov byte [edx], al
add edx, dword [esp + 0x98]
sub dword [esp + 0x1c], esi
sar dword [esp + 0x1c], 0x14
mov ecx, dword [esp + 0x1c]
movzx eax, byte [edx]
movzx eax, byte [ecx + eax + 0xe15980]
mov byte [edx], al
mov eax, dword [esp + 0x14]
add edx, dword [esp + 0x98]
sub dword [esp + 0x20], eax
sar dword [esp + 0x20], 0x14
movzx eax, byte [edx]
mov ecx, dword [esp + 0x20]
movzx eax, byte [ecx + eax + 0xe15980]
mov byte [edx], al
mov eax, dword [esp + 0x18]
add edx, dword [esp + 0x98]
sub dword [esp + 0x24], eax
sar dword [esp + 0x24], 0x14
movzx eax, byte [edx]
mov ecx, dword [esp + 0x24]
movzx eax, byte [ecx + eax + 0xe15980]
mov byte [edx], al
sub esp, 0xffffff80
pop ebx
pop esi
pop edi
pop ebp
ret