Function at 0x838d50
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x110
mov ebp, dword [esp + 0x12c]
mov ecx, dword [ebp + 8]
lea eax, [ebp + 4]
mov dword [esp + 0x18], eax
mov esi, dword [ebp + 0xc]
lea eax, [ebp + 0xc]
mov dword [esp + 8], eax
movsx ebx, word [ebp + 2]
lea edx, [ebp + 8]
mov dword [esp + 0x10], edx
lea edx, [ebp + 2]
mov eax, ecx
or eax, dword [ebp + 4]
mov dword [esp + 0xf4], ecx
mov dword [esp + 0xe8], edx
or eax, esi
or eax, ebx
je 0x838f23
movsx edx, word [ebp]
mov eax, edx
shl eax, 0xe
sub eax, edx
movsx edx, word [ebp + 4]
add eax, 0x400
imul ecx, edx, 0x539f
imul edx, edx, 0x22a3
lea edi, [eax + ecx]
mov dword [esp], edx
add edx, eax
mov dword [esp + 0x98], edx
mov edx, eax
sub eax, ecx
sub edx, dword [esp]
mov dword [esp + 0xb0], eax
lea eax, [ebp + 6]
imul ecx, ebx, 0x58c5
mov dword [esp + 0xa4], edx
movsx edx, word [ebp + 6]
mov dword [esp + 0x14], eax
imul eax, edx, 0x4b42
add ecx, eax
mov dword [esp + 0x8c], ecx
imul eax, edx, 0xffffee58
imul ecx, ebx, 0x4b42
add ecx, eax
mov dword [esp + 0x80], ecx
imul eax, edx, 0xffffa73b
imul ecx, ebx, 0x3249
imul edx, edx, 0xffffcdb7
add ecx, eax
imul eax, ebx, 0x11a8
mov dword [esp + 0x74], ecx
add edx, eax
or esi, dword [esp + 0xf4]
mov dword [esp + 0x68], edx
jne 0x839da8
lea edx, [ebp + 0xe]
lea ecx, [ebp + 0xa]
mov dword [esp + 0xc], ecx
mov ecx, edx
mov dword [esp + 4], edx
mov edx, dword [esp + 0x8c]
lea eax, [edi + edx]
sub edi, edx
mov edx, dword [esp + 0xe8]
sar eax, 0xb
mov word [ebp], ax
mov eax, dword [esp + 0x98]
sar edi, 0xb
add eax, dword [esp + 0x80]
mov word [ecx], di
mov ecx, dword [esp + 0x80]
sub dword [esp + 0x98], ecx
sar eax, 0xb
mov ecx, dword [esp + 0x18]
sar dword [esp + 0x98], 0xb
mov word [edx], ax
movzx edx, word [esp + 0x98]
mov eax, dword [esp + 8]
mov word [eax], dx
mov eax, dword [esp + 0xa4]
add eax, dword [esp + 0x74]
mov edx, dword [esp + 0xc]
sar eax, 0xb
mov word [ecx], ax
mov eax, dword [esp + 0x74]
sub dword [esp + 0xa4], eax
sar dword [esp + 0xa4], 0xb
movzx ecx, word [esp + 0xa4]
mov eax, dword [esp + 0xb0]
add eax, dword [esp + 0x68]
mov word [edx], cx
mov edx, dword [esp + 0x14]
sar eax, 0xb
mov ecx, dword [esp + 0x68]
sub dword [esp + 0xb0], ecx
mov word [edx], ax
sar dword [esp + 0xb0], 0xb
movzx edx, word [esp + 0xb0]
mov eax, dword [esp + 0x10]
mov word [eax], dx
jmp 0x838f57
movsx eax, word [ebp]
lea ecx, [ebp + 0xe]
mov dword [esp + 4], ecx
shl eax, 3
and eax, 0xffff
mov edx, eax
shl edx, 0x10
add edx, eax
mov dword [ebp + 0xc], edx
lea eax, [ebp + 0xa]
mov dword [ebp + 8], edx
mov dword [ebp + 4], edx
mov dword [ebp], edx
lea edx, [ebp + 6]
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x18]
lea edx, [ebp + 0x10]
mov esi, dword [ebp + 0x1c]
lea ecx, [ebp + 0x14]
movsx ebx, word [ebp + 0x12]
mov dword [esp + 0x108], edx
lea edx, [ebp + 0x12]
mov dword [esp + 0xf8], eax
or eax, dword [ebp + 0x14]
mov dword [esp + 0x100], ecx
mov dword [esp + 0xec], edx
or eax, esi
or eax, ebx
je 0x83913f
movsx edx, word [ebp + 0x10]
mov eax, edx
shl eax, 0xe
sub eax, edx
movsx edx, word [ebp + 0x14]
add eax, 0x400
imul ecx, edx, 0x539f
imul edx, edx, 0x22a3
lea edi, [ecx + eax]
mov dword [esp], edx
add edx, eax
mov dword [esp + 0x9c], edx
mov edx, eax
sub eax, ecx
sub edx, dword [esp]
mov dword [esp + 0xb4], eax
lea eax, [ebp + 0x16]
imul ecx, ebx, 0x58c5
mov dword [esp + 0xa8], edx
movsx edx, word [ebp + 0x16]
mov dword [esp + 0xe0], eax
imul eax, edx, 0x4b42
add eax, ecx
mov dword [esp + 0x90], eax
imul ecx, ebx, 0x4b42
imul eax, edx, 0xffffee58
add eax, ecx
mov dword [esp + 0x84], eax
imul ecx, ebx, 0x3249
imul eax, edx, 0xffffa73b
imul edx, edx, 0xffffcdb7
add eax, ecx
mov dword [esp + 0x78], eax
imul eax, ebx, 0x11a8
add edx, eax
or esi, dword [esp + 0xf8]
mov dword [esp + 0x6c], edx
jne 0x839cd9
lea edx, [ebp + 0x1c]
lea ecx, [ebp + 0x1a]
lea eax, [ebp + 0x18]
lea esi, [ebp + 0x1e]
mov dword [esp + 0xcc], edx
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xc4], eax
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x108]
lea eax, [edi + edx]
sub edi, edx
mov edx, dword [esp + 0xec]
sar eax, 0xb
mov word [ecx], ax
mov eax, dword [esp + 0x9c]
sar edi, 0xb
add eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x84]
sub dword [esp + 0x9c], ecx
sar eax, 0xb
mov ecx, dword [esp + 0x100]
sar dword [esp + 0x9c], 0xb
mov word [esi], di
mov word [edx], ax
movzx edx, word [esp + 0x9c]
mov eax, dword [esp + 0xcc]
mov word [eax], dx
mov eax, dword [esp + 0xa8]
add eax, dword [esp + 0x78]
mov edx, dword [esp + 0xc8]
sar eax, 0xb
mov word [ecx], ax
mov eax, dword [esp + 0x78]
sub dword [esp + 0xa8], eax
sar dword [esp + 0xa8], 0xb
movzx ecx, word [esp + 0xa8]
mov eax, dword [esp + 0xb4]
add eax, dword [esp + 0x6c]
mov word [edx], cx
mov edx, dword [esp + 0xe0]
sar eax, 0xb
mov ecx, dword [esp + 0x6c]
mov word [edx], ax
sub dword [esp + 0xb4], ecx
sar dword [esp + 0xb4], 0xb
movzx edx, word [esp + 0xb4]
mov eax, dword [esp + 0xc4]
mov word [eax], dx
jmp 0x83915e
movsx eax, word [ebp + 0x10]
shl eax, 3
and eax, 0xffff
mov edx, eax
shl edx, 0x10
add edx, eax
mov dword [ebp + 0x1c], edx
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x14], edx
mov dword [ebp + 0x10], edx
mov edx, dword [ebp + 0x28]
lea eax, [ebp + 0x24]
mov esi, dword [ebp + 0x2c]
lea ecx, [ebp + 0x20]
mov dword [esp + 0x104], eax
movsx ebx, word [ebp + 0x22]
mov dword [esp + 0x10c], ecx
lea ecx, [ebp + 0x22]
mov eax, edx
or eax, dword [ebp + 0x24]
mov dword [esp + 0xfc], edx
mov dword [esp + 0xf0], ecx
or eax, esi
or eax, ebx
je 0x839348
movsx edx, word [ebp + 0x20]
mov eax, edx
shl eax, 0xe
sub eax, edx
movsx edx, word [ebp + 0x24]
add eax, 0x400
imul ecx, edx, 0x539f
imul edx, edx, 0x22a3
lea edi, [ecx + eax]
mov dword [esp], edx
add edx, eax
mov dword [esp + 0xa0], edx
mov edx, eax
sub eax, ecx
sub edx, dword [esp]
mov dword [esp + 0xb8], eax
lea eax, [ebp + 0x26]
imul ecx, ebx, 0x58c5
mov dword [esp + 0xac], edx
movsx edx, word [ebp + 0x26]
mov dword [esp + 0xe4], eax
imul eax, edx, 0x4b42
add eax, ecx
mov dword [esp + 0x94], eax
imul ecx, ebx, 0x4b42
imul eax, edx, 0xffffee58
add eax, ecx
mov dword [esp + 0x88], eax
imul ecx, ebx, 0x3249
imul eax, edx, 0xffffa73b
imul edx, edx, 0xffffcdb7
add eax, ecx
mov dword [esp + 0x7c], eax
imul eax, ebx, 0x11a8
add edx, eax
or esi, dword [esp + 0xfc]
mov dword [esp + 0x70], edx
jne 0x839c0a
lea edx, [ebp + 0x2c]
lea ecx, [ebp + 0x2a]
lea eax, [ebp + 0x28]
lea esi, [ebp + 0x2e]
mov dword [esp + 0xd8], edx
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd0], eax
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x10c]
lea eax, [edi + edx]
sub edi, edx
mov edx, dword [esp + 0xf0]
sar eax, 0xb
mov word [ecx], ax
mov eax, dword [esp + 0xa0]
sar edi, 0xb
add eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x88]
sub dword [esp + 0xa0], ecx
sar eax, 0xb
mov ecx, dword [esp + 0x104]
sar dword [esp + 0xa0], 0xb
mov word [esi], di
mov word [edx], ax
movzx edx, word [esp + 0xa0]
mov eax, dword [esp + 0xd8]
mov word [eax], dx
mov eax, dword [esp + 0xac]
add eax, dword [esp + 0x7c]
mov edx, dword [esp + 0xd4]
sar eax, 0xb
mov word [ecx], ax
mov eax, dword [esp + 0x7c]
sub dword [esp + 0xac], eax
sar dword [esp + 0xac], 0xb
movzx ecx, word [esp + 0xac]
mov eax, dword [esp + 0xb8]
add eax, dword [esp + 0x70]
mov word [edx], cx
mov edx, dword [esp + 0xe4]
sar eax, 0xb
mov ecx, dword [esp + 0x70]
mov word [edx], ax
sub dword [esp + 0xb8], ecx
sar dword [esp + 0xb8], 0xb
movzx edx, word [esp + 0xb8]
mov eax, dword [esp + 0xd0]
mov word [eax], dx
jmp 0x839367
movsx eax, word [ebp + 0x20]
shl eax, 3
and eax, 0xffff
mov edx, eax
shl edx, 0x10
add edx, eax
mov dword [ebp + 0x2c], edx
mov dword [ebp + 0x28], edx
mov dword [ebp + 0x24], edx
mov dword [ebp + 0x20], edx
mov edx, dword [ebp + 0x38]
lea eax, [ebp + 0x34]
mov esi, dword [ebp + 0x3c]
lea ecx, [ebp + 0x30]
mov dword [esp + 0x44], eax
movsx ebx, word [ebp + 0x32]
mov dword [esp + 0x1c], ecx
lea ecx, [ebp + 0x32]
mov eax, edx
or eax, dword [ebp + 0x34]
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], ecx
or eax, esi
or eax, ebx
jne 0x8399ed
movsx ecx, word [ebp + 0x30]
lea eax, [ecx*8]
and eax, 0xffff
mov edx, eax
shl edx, 0x10
add edx, eax
mov dword [ebp + 0x3c], edx
mov dword [ebp + 0x38], edx
mov dword [ebp + 0x34], edx
mov dword [ebp + 0x30], edx
movsx eax, word [ebp + 0x20]
imul edx, ecx, 0x61f
movsx ebx, word [ebp]
movsx edi, word [ebp + 0x10]
lea esi, [eax + ebx]
sub ebx, eax
imul eax, edi, 0xec8
imul esi, esi, 0xb50
imul edi, edi, 0x61f
imul ebx, ebx, 0xb50
add edx, eax
imul eax, ecx, 0xec8
mov ecx, dword [esp + 0x124]
add esi, 0x10000
mov dword [esp + 0x4c], edx
add ebx, 0x10000
sub edi, eax
lea eax, [esi + edx]
movzx edx, byte [ecx]
sar eax, 0x11
movzx eax, byte [eax + edx + 0xe15980]
mov byte [ecx], al
mov ecx, dword [esp + 0x128]
lea eax, [ebx + edi]
add ecx, dword [esp + 0x124]
sub ebx, edi
sar eax, 0x11
sar ebx, 0x11
movzx edx, byte [ecx]
movzx eax, byte [eax + edx + 0xe15980]
mov byte [ecx], al
add ecx, dword [esp + 0x128]
movzx eax, byte [ecx]
movzx eax, byte [ebx + eax + 0xe15980]
mov byte [ecx], al
add ecx, dword [esp + 0x128]
sub esi, dword [esp + 0x4c]
movzx eax, byte [ecx]
sar esi, 0x11
movzx eax, byte [esi + eax + 0xe15980]
mov byte [ecx], al
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe8]
movsx ebx, word [eax]
movsx edi, word [eax + 0x10]
movsx eax, word [eax + 0x20]
movsx edx, word [ecx + 0x30]
lea esi, [eax + ebx]
sub ebx, eax
imul ecx, edx, 0x61f
imul eax, edi, 0xec8
imul esi, esi, 0xb50
imul edx, edx, 0xec8
imul edi, edi, 0x61f
add ecx, eax
add esi, 0x10000
mov dword [esp + 0x50], ecx
lea eax, [esi + ecx]
mov ecx, dword [esp + 0x124]
sub edi, edx
sar eax, 0x11
imul ebx, ebx, 0xb50
movzx edx, byte [ecx + 1]
add ebx, 0x10000
movzx eax, byte [eax + edx + 0xe15980]
mov byte [ecx + 1], al
mov eax, dword [esp + 0x124]
mov edx, dword [esp + 0x128]
lea ecx, [eax + edx + 1]
movzx edx, byte [ecx]
lea eax, [ebx + edi]
sar eax, 0x11
movzx eax, byte [eax + edx + 0xe15980]
mov byte [ecx], al
add ecx, dword [esp + 0x128]
sub ebx, edi
sar ebx, 0x11
movzx eax, byte [ecx]
movzx eax, byte [ebx + eax + 0xe15980]
mov byte [ecx], al
add ecx, dword [esp + 0x128]
sub esi, dword [esp + 0x50]
movzx eax, byte [ecx]
sar esi, 0x11
movzx eax, byte [esi + eax + 0xe15980]
mov byte [ecx], al
mov ecx, dword [esp + 0x18]
movsx ebx, word [ebp + 4]
movsx eax, word [ecx + 0x20]
movsx edi, word [ecx + 0x10]
movsx edx, word [ecx + 0x30]
lea esi, [eax + ebx]
sub ebx, eax
imul esi, esi, 0xb50
imul eax, edi, 0xec8
imul ecx, edx, 0x61f
imul edi, edi, 0x61f
add esi, 0x10000
imul edx, edx, 0xec8
add ecx, eax
mov dword [esp + 0x54], ecx
lea eax, [esi + ecx]
mov ecx, dword [esp + 0x124]
sar eax, 0x11
sub edi, edx
imul ebx, ebx, 0xb50
movzx edx, byte [ecx + 2]
add ebx, 0x10000
movzx eax, byte [eax + edx + 0xe15980]
mov byte [ecx + 2], al
mov eax, dword [esp + 0x124]
mov edx, dword [esp + 0x128]
lea ecx, [eax + edx + 2]
movzx edx, byte [ecx]
lea eax, [ebx + edi]
sub ebx, edi
sar eax, 0x11
sar ebx, 0x11
movzx eax, byte [eax + edx + 0xe15980]
mov byte [ecx], al
add ecx, dword [esp + 0x128]
movzx eax, byte [ecx]
movzx eax, byte [ebx + eax + 0xe15980]
mov byte [ecx], al
add ecx, dword [esp + 0x128]
sub esi, dword [esp + 0x54]
movzx eax, byte [ecx]
sar esi, 0x11
movzx eax, byte [esi + eax + 0xe15980]
mov byte [ecx], al
mov ecx, dword [esp + 0x14]
movsx ebx, word [ebp + 6]
movsx eax, word [ecx + 0x20]
movsx edi, word [ecx + 0x10]
movsx edx, word [ecx + 0x30]
lea esi, [eax + ebx]
sub ebx, eax
imul esi, esi, 0xb50
imul ecx, edx, 0x61f
imul eax, edi, 0xec8
imul ebx, ebx, 0xb50
add esi, 0x10000
add ecx, eax
mov dword [esp + 0x58], ecx
add ebx, 0x10000
lea eax, [esi + ecx]
mov ecx, dword [esp + 0x124]
imul edi, edi, 0x61f
imul edx, edx, 0xec8
sar eax, 0x11
sub edi, edx
movzx edx, byte [ecx + 3]
movzx eax, byte [eax + edx + 0xe15980]
mov byte [ecx + 3], al
mov eax, dword [esp + 0x124]
mov edx, dword [esp + 0x128]
lea ecx, [eax + edx + 3]
movzx edx, byte [ecx]
lea eax, [ebx + edi]
sub ebx, edi
sar eax, 0x11
sar ebx, 0x11
movzx eax, byte [eax + edx + 0xe15980]
mov byte [ecx], al
add ecx, dword [esp + 0x128]
movzx eax, byte [ecx]
movzx eax, byte [ebx + eax + 0xe15980]
mov byte [ecx], al
add ecx, dword [esp + 0x128]
sub esi, dword [esp + 0x58]
movzx eax, byte [ecx]
sar esi, 0x11
movzx eax, byte [esi + eax + 0xe15980]
mov byte [ecx], al
mov ecx, dword [esp + 0x10]
movsx ebx, word [ebp + 8]
movsx eax, word [ecx + 0x20]
movsx edi, word [ecx + 0x10]
movsx edx, word [ecx + 0x30]
lea esi, [eax + ebx]
sub ebx, eax
imul esi, esi, 0xb50
imul eax, edi, 0xec8
imul ecx, edx, 0x61f
imul edi, edi, 0x61f
add esi, 0x10000
imul edx, edx, 0xec8
add ecx, eax
mov dword [esp + 0x5c], ecx
lea eax, [esi + ecx]
mov ecx, dword [esp + 0x124]
sar eax, 0x11
sub edi, edx
imul ebx, ebx, 0xb50
movzx edx, byte [ecx + 4]
add ebx, 0x10000
movzx eax, byte [eax + edx + 0xe15980]
mov byte [ecx + 4], al
mov eax, dword [esp + 0x124]
mov edx, dword [esp + 0x128]
lea ecx, [eax + edx + 4]
movzx edx, byte [ecx]
lea eax, [ebx + edi]
sub ebx, edi
sar eax, 0x11
sar ebx, 0x11
movzx eax, byte [eax + edx + 0xe15980]
mov byte [ecx], al
add ecx, dword [esp + 0x128]
movzx eax, byte [ecx]
movzx eax, byte [ebx + eax + 0xe15980]
mov byte [ecx], al
add ecx, dword [esp + 0x128]
sub esi, dword [esp + 0x5c]
movzx eax, byte [ecx]
sar esi, 0x11
movzx eax, byte [esi + eax + 0xe15980]
mov byte [ecx], al
mov ecx, dword [esp + 0xc]
movsx ebx, word [ebp + 0xa]
movsx eax, word [ecx + 0x20]
movsx edi, word [ecx + 0x10]
movsx edx, word [ecx + 0x30]
lea esi, [eax + ebx]
sub ebx, eax
imul esi, esi, 0xb50
add esi, 0x10000
imul ebx, ebx, 0xb50
imul eax, edi, 0xec8
imul ecx, edx, 0x61f
imul edi, edi, 0x61f
imul edx, edx, 0xec8
add ebx, 0x10000
add ecx, eax
mov dword [esp + 0x60], ecx
lea eax, [esi + ecx]
mov ecx, dword [esp + 0x124]
sub edi, edx
sar eax, 0x11
movzx edx, byte [ecx + 5]
movzx eax, byte [eax + edx + 0xe15980]
mov byte [ecx + 5], al
mov eax, dword [esp + 0x124]
mov edx, dword [esp + 0x128]
lea ecx, [eax + edx + 5]
movzx edx, byte [ecx]
lea eax, [ebx + edi]
sub ebx, edi
sar eax, 0x11
sar ebx, 0x11
movzx eax, byte [eax + edx + 0xe15980]
mov byte [ecx], al
add ecx, dword [esp + 0x128]
movzx eax, byte [ecx]
movzx eax, byte [ebx + eax + 0xe15980]
mov byte [ecx], al
add ecx, dword [esp + 0x128]
sub esi, dword [esp + 0x60]
movzx eax, byte [ecx]
sar esi, 0x11
movzx eax, byte [esi + eax + 0xe15980]
mov byte [ecx], al
mov ecx, dword [esp + 8]
movsx ebx, word [ebp + 0xc]
movsx eax, word [ecx + 0x20]
movsx edi, word [ecx + 0x10]
movsx edx, word [ecx + 0x30]
lea esi, [eax + ebx]
sub ebx, eax
imul esi, esi, 0xb50
imul eax, edi, 0xec8
imul ecx, edx, 0x61f
imul edi, edi, 0x61f
add esi, 0x10000
imul edx, edx, 0xec8
add ecx, eax
mov dword [esp + 0x64], ecx
lea eax, [esi + ecx]
mov ecx, dword [esp + 0x124]
sar eax, 0x11
sub edi, edx
imul ebx, ebx, 0xb50
movzx edx, byte [ecx + 6]
add ebx, 0x10000
movzx eax, byte [eax + edx + 0xe15980]
mov byte [ecx + 6], al
mov eax, dword [esp + 0x124]
mov edx, dword [esp + 0x128]
lea ecx, [eax + edx + 6]
movzx edx, byte [ecx]
lea eax, [ebx + edi]
sub ebx, edi
sar eax, 0x11
sar ebx, 0x11
movzx eax, byte [eax + edx + 0xe15980]
mov byte [ecx], al
add ecx, dword [esp + 0x128]
movzx eax, byte [ecx]
movzx eax, byte [ebx + eax + 0xe15980]
mov byte [ecx], al
add ecx, dword [esp + 0x128]
sub esi, dword [esp + 0x64]
movzx eax, byte [ecx]
sar esi, 0x11
movzx eax, byte [esi + eax + 0xe15980]
mov byte [ecx], al
mov ecx, dword [esp + 4]
movsx ebx, word [ebp + 0xe]
movsx eax, word [ecx + 0x20]
movsx edi, word [ecx + 0x10]
movsx edx, word [ecx + 0x30]
lea esi, [eax + ebx]
sub ebx, eax
imul eax, edi, 0xec8
imul ecx, edx, 0x61f
imul edi, edi, 0x61f
imul edx, edx, 0xec8
imul esi, esi, 0xb50
lea ebp, [ecx + eax]
mov ecx, dword [esp + 0x124]
imul ebx, ebx, 0xb50
sub edi, edx
add esi, 0x10000
movzx edx, byte [ecx + 7]
lea eax, [esi + ebp]
sub esi, ebp
sar eax, 0x11
add ebx, 0x10000
sar esi, 0x11
movzx eax, byte [eax + edx + 0xe15980]
mov byte [ecx + 7], al
mov eax, dword [esp + 0x124]
mov edx, dword [esp + 0x128]
lea ecx, [eax + edx + 7]
movzx edx, byte [ecx]
lea eax, [ebx + edi]
sub ebx, edi
sar eax, 0x11
sar ebx, 0x11
movzx eax, byte [eax + edx + 0xe15980]
mov byte [ecx], al
add ecx, dword [esp + 0x128]
movzx eax, byte [ecx]
movzx eax, byte [ebx + eax + 0xe15980]
mov byte [ecx], al
add ecx, dword [esp + 0x128]
movzx eax, byte [ecx]
movzx eax, byte [esi + eax + 0xe15980]
mov byte [ecx], al
add esp, 0x110
pop ebx
pop esi
pop edi
pop ebp
ret
movsx edx, word [ebp + 0x30]
mov eax, edx
shl eax, 0xe
sub eax, edx
movsx edx, word [ebp + 0x34]
add eax, 0x400
imul ecx, edx, 0x539f
imul edx, edx, 0x22a3
lea edi, [ecx + eax]
mov dword [esp], edx
add edx, eax
mov dword [esp + 0x38], edx
mov edx, eax
sub eax, ecx
sub edx, dword [esp]
mov dword [esp + 0x30], eax
lea eax, [ebp + 0x36]
imul ecx, ebx, 0x58c5
mov dword [esp + 0x34], edx
movsx edx, word [ebp + 0x36]
mov dword [esp + 0xdc], eax
imul eax, edx, 0x4b42
add eax, ecx
mov dword [esp + 0x2c], eax
imul ecx, ebx, 0x4b42
imul eax, edx, 0xffffee58
add eax, ecx
mov dword [esp + 0x28], eax
imul ecx, ebx, 0x3249
imul eax, edx, 0xffffa73b
imul edx, edx, 0xffffcdb7
add eax, ecx
mov dword [esp + 0x24], eax
imul eax, ebx, 0x11a8
add edx, eax
or esi, dword [esp + 0x40]
mov dword [esp + 0x20], edx
jne 0x839b53
lea edx, [ebp + 0x3c]
lea ecx, [ebp + 0x3a]
lea eax, [ebp + 0x38]
lea esi, [ebp + 0x3e]
mov dword [esp + 0xc0], edx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x3c]
add eax, edi
sar eax, 0xb
mov word [ecx], ax
mov eax, dword [esp + 0x28]
add eax, dword [esp + 0x38]
sub edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
sub dword [esp + 0x38], ecx
sar eax, 0xb
mov ecx, dword [esp + 0x44]
sar dword [esp + 0x38], 0xb
sar edi, 0xb
mov word [esi], di
mov word [edx], ax
movzx edx, word [esp + 0x38]
mov eax, dword [esp + 0xc0]
mov word [eax], dx
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x34]
mov edx, dword [esp + 0xbc]
sar eax, 0xb
mov word [ecx], ax
mov eax, dword [esp + 0x24]
sub dword [esp + 0x34], eax
sar dword [esp + 0x34], 0xb
movzx ecx, word [esp + 0x34]
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x30]
mov word [edx], cx
mov edx, dword [esp + 0xdc]
sar eax, 0xb
mov ecx, dword [esp + 0x20]
mov word [edx], ax
sub dword [esp + 0x30], ecx
sar dword [esp + 0x30], 0xb
movzx edx, word [esp + 0x30]
mov eax, dword [esp + 0x48]
mov word [eax], dx
movsx ecx, word [ebp + 0x30]
jmp 0x8393bc
lea eax, [ebp + 0x3c]
movsx ecx, word [ebp + 0x38]
mov dword [esp + 0xc0], eax
movsx eax, word [ebp + 0x3c]
lea edx, [ebp + 0x38]
mov dword [esp + 0x48], edx
mov ebx, ecx
imul esi, eax, 0x22a3
shl ebx, 0xe
sub ebx, ecx
imul eax, eax, 0x539f
lea edx, [esi + ebx]
imul ecx, ecx, 0xffffc001
add edi, edx
mov edx, dword [esp + 0x38]
sub edx, eax
add eax, ecx
add dword [esp + 0x34], eax
add edx, ecx
mov eax, dword [esp + 0x30]
movsx ecx, word [ebp + 0x3e]
mov dword [esp + 0x38], edx
lea edx, [ebp + 0x3a]
mov dword [esp + 0xbc], edx
sub eax, esi
add eax, ebx
movsx ebx, word [ebp + 0x3a]
mov dword [esp + 0x30], eax
imul eax, ecx, 0x11a8
lea esi, [ebp + 0x3e]
imul edx, ebx, 0x3249
add eax, edx
imul edx, ebx, 0xffffa73b
add dword [esp + 0x2c], eax
imul eax, ecx, 0xffffcdb7
add eax, edx
imul edx, ebx, 0x11a8
add dword [esp + 0x28], eax
imul ebx, ebx, 0x4b42
imul eax, ecx, 0x4b42
imul ecx, ecx, 0xffffa73b
add eax, edx
add ecx, ebx
add dword [esp + 0x24], eax
add dword [esp + 0x20], ecx
jmp 0x839aa6
lea eax, [ebp + 0x2c]
lea ecx, [ebp + 0x28]
mov dword [esp + 0xd8], eax
movsx eax, word [ebp + 0x2c]
mov dword [esp + 0xd0], ecx
movsx ecx, word [ebp + 0x28]
imul esi, eax, 0x22a3
mov ebx, ecx
shl ebx, 0xe
sub ebx, ecx
lea edx, [esi + ebx]
imul ecx, ecx, 0xffffc001
add edi, edx
mov edx, dword [esp + 0xa0]
imul eax, eax, 0x539f
sub edx, eax
add eax, ecx
add dword [esp + 0xac], eax
add edx, ecx
mov eax, dword [esp + 0xb8]
movsx ecx, word [ebp + 0x2e]
mov dword [esp + 0xa0], edx
lea edx, [ebp + 0x2a]
mov dword [esp + 0xd4], edx
sub eax, esi
add eax, ebx
movsx ebx, word [ebp + 0x2a]
mov dword [esp + 0xb8], eax
imul eax, ecx, 0x11a8
lea esi, [ebp + 0x2e]
imul edx, ebx, 0x3249
add eax, edx
imul edx, ebx, 0xffffa73b
add dword [esp + 0x94], eax
imul eax, ecx, 0xffffcdb7
add eax, edx
imul edx, ebx, 0x11a8
add dword [esp + 0x88], eax
imul ebx, ebx, 0x4b42
imul eax, ecx, 0x4b42
imul ecx, ecx, 0xffffa73b
add eax, edx
add ecx, ebx
add dword [esp + 0x7c], eax
add dword [esp + 0x70], ecx
jmp 0x83926a
lea eax, [ebp + 0x1c]
lea ecx, [ebp + 0x18]
mov dword [esp + 0xcc], eax
movsx eax, word [ebp + 0x1c]
mov dword [esp + 0xc4], ecx
movsx ecx, word [ebp + 0x18]
imul esi, eax, 0x22a3
mov ebx, ecx
shl ebx, 0xe
sub ebx, ecx
lea edx, [esi + ebx]
imul ecx, ecx, 0xffffc001
add edi, edx
mov edx, dword [esp + 0x9c]
imul eax, eax, 0x539f
sub edx, eax
add eax, ecx
add dword [esp + 0xa8], eax
add edx, ecx
mov eax, dword [esp + 0xb4]
movsx ecx, word [ebp + 0x1e]
mov dword [esp + 0x9c], edx
lea edx, [ebp + 0x1a]
mov dword [esp + 0xc8], edx
sub eax, esi
add eax, ebx
movsx ebx, word [ebp + 0x1a]
mov dword [esp + 0xb4], eax
imul eax, ecx, 0x11a8
lea esi, [ebp + 0x1e]
imul edx, ebx, 0x3249
add eax, edx
imul edx, ebx, 0xffffa73b
add dword [esp + 0x90], eax
imul eax, ecx, 0xffffcdb7
add eax, edx
imul edx, ebx, 0x11a8
add dword [esp + 0x84], eax
imul ebx, ebx, 0x4b42
imul eax, ecx, 0x4b42
imul ecx, ecx, 0xffffa73b
add eax, edx
add ecx, ebx
add dword [esp + 0x78], eax
add dword [esp + 0x6c], ecx
jmp 0x839061
movsx eax, word [ebp + 0xc]
movsx ecx, word [ebp + 8]
imul esi, eax, 0x22a3
mov ebx, ecx
shl ebx, 0xe
sub ebx, ecx
lea edx, [esi + ebx]
imul ecx, ecx, 0xffffc001
add edi, edx
mov edx, dword [esp + 0x98]
imul eax, eax, 0x539f
sub edx, eax
add eax, ecx
add dword [esp + 0xa4], eax
add edx, ecx
mov eax, dword [esp + 0xb0]
lea ecx, [ebp + 0xa]
mov dword [esp + 0xc], ecx
movsx ecx, word [ebp + 0xe]
mov dword [esp + 0x98], edx
sub eax, esi
add eax, ebx
movsx ebx, word [ebp + 0xa]
mov dword [esp + 0xb0], eax
lea eax, [ebp + 0xe]
mov dword [esp + 4], eax
imul eax, ecx, 0x11a8
imul edx, ebx, 0x3249
add eax, edx
imul edx, ebx, 0xffffa73b
add dword [esp + 0x8c], eax
imul eax, ecx, 0xffffcdb7
add eax, edx
imul edx, ebx, 0x11a8
add dword [esp + 0x80], eax
imul ebx, ebx, 0x4b42
imul eax, ecx, 0x4b42
imul ecx, ecx, 0xffffa73b
add eax, edx
add ecx, ebx
add dword [esp + 0x74], eax
add dword [esp + 0x68], ecx
mov ecx, dword [esp + 4]
jmp 0x838e5a