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

Disassembly:
mov ecx, dword [0x6b21fc]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x244]
cmp eax, dword [ecx + 8]
jbe 0x4ec709
sub esp, 0x2c4
mov edx, dword [esp + 0x2c8]
mov ebx, dword [edx + 0x18]
mov ebp, dword [edx + 0x1c]
cmp dword [edx + 0x33c], 1
jne 0x4e985e
movzx esi, byte [esp + 0x2d8]
xchg esi, eax
test al, al
xchg esi, eax
jne 0x4e9866
mov ecx, dword [0x6882ec]
mov eax, dword [esp + 0x2d4]
cmp eax, ecx
jae 0x4ec703
shl eax, 4
mov ecx, dword [0x6882e8]
mov edi, dword [ecx + eax]
mov esi, dword [ecx + eax + 8]
sub ebx, esi
mov esi, dword [ecx + eax + 4]
mov ecx, dword [ecx + eax + 0xc]
lea eax, [edi + ebx - 1]
test edi, edi
je 0x4ec6fe
sub ebp, ecx
cmp edi, 0xffffffff
je 0x4e97e4
cdq
idiv edi
jmp 0x4e97e6
neg eax
lea ecx, [esi + ebp - 1]
test esi, esi
je 0x4ec6f9
mov dword [esp + 0xc0], eax
mov eax, ecx
cmp esi, 0xffffffff
je 0x4e9805
cdq
idiv esi
jmp 0x4e9807
neg eax
mov ecx, dword [esp + 0xc0]
test ecx, ecx
je 0x4e9816
test eax, eax
jne 0x4e9849
mov dword [esp + 0x2dc], 0
mov dword [esp + 0x2e0], 0
mov dword [esp + 0x2e4], 0
mov dword [esp + 0x2e8], 0
add esp, 0x2c4
ret
mov edx, dword [esp + 0x2c8]
movzx esi, byte [esp + 0x2d8]
mov ebx, ecx
mov ebp, eax
jmp 0x4e9866
movzx esi, byte [esp + 0x2d8]
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xf4], ebp
mov ecx, dword [edx + 0x30]
cmp ecx, 0xa
jg 0x4e9c82
cmp ecx, 5
jg 0x4e9a90
lea edi, [ecx - 1]
cmp edi, 3
ja 0x4e99c5
movzx eax, byte [edx + 0x340]
mov ecx, dword [edx + 0x20]
mov dword [esp + 0x100], ecx
test al, al
je 0x4e9904
test ebx, ebx
jge 0x4e98b4
mov eax, ebx
xor edi, edi
jmp 0x4e98ba
mov eax, ebx
xor ebx, ebx
mov edi, eax
test ebp, ebp
jge 0x4e98cd
mov dword [esp + 0x274], eax
xor eax, eax
mov dword [esp + 0x48], eax
jmp 0x4e98dc
xor ebp, ebp
mov ebp, dword [esp + 0xf4]
mov dword [esp + 0x48], ebp
xor ebp, ebp
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc], eax
call fcn.004dc0f0
mov eax, dword [esp + 0x10]
lea ecx, [0x5d4a7c]
mov edx, eax
xor ebx, ebx
jmp 0x4e995c
test ebx, ebx
jge 0x4e990e
mov eax, ebx
xor edi, edi
jmp 0x4e9914
mov eax, ebx
xor ebx, ebx
mov edi, eax
test ebp, ebp
jge 0x4e9927
mov dword [esp + 0x26c], eax
xor eax, eax
mov dword [esp + 0x44], eax
jmp 0x4e9936
xor ebp, ebp
mov ebp, dword [esp + 0xf4]
mov dword [esp + 0x44], ebp
xor ebp, ebp
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], eax
call fcn.004dc7a0
mov eax, dword [esp + 0x10]
lea ecx, [0x5d4a0c]
xor edx, edx
mov ebx, eax
mov ebp, dword [esp + 0xf4]
movzx esi, byte [esp + 0x2d8]
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x28c], ebp
xor esi, esi
mov dword [esp + 0x29c], esi
xor ebp, ebp
mov dword [esp + 0x27c], ebp
xor ebp, ebp
mov dword [esp + 0x290], ebp
mov dword [esp + 0xdc], ecx
mov dword [esp + 0x298], eax
mov eax, ebx
mov ecx, edx
mov ebp, dword [esp + 0xf4]
movzx esi, byte [esp + 0x2d8]
mov edx, dword [esp + 0x2c8]
mov ebx, dword [esp + 0xc0]
jmp 0x4ea141
cmp ecx, 5
jne 0x4ea0fa
test ebx, ebx
jge 0x4e99d8
mov eax, ebx
xor ecx, ecx
jmp 0x4e99de
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4e99e6
xor edi, edi
jmp 0x4e99ef
xor ebp, ebp
mov edi, dword [esp + 0xf4]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.004dc0f0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x2c8]
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xf4]
movzx esi, byte [esp + 0x2d8]
mov ecx, eax
xor edi, edi
xor eax, eax
mov dword [esp + 0x28c], eax
xor edx, edx
mov dword [esp + 0x29c], edx
xor ebx, ebx
mov dword [esp + 0x27c], ebx
xor ebp, ebp
mov dword [esp + 0x290], ebp
lea esi, [0x5d4a7c]
mov dword [esp + 0xdc], esi
mov dword [esp + 0x298], ecx
mov eax, 0x10
mov dword [esp + 0x100], eax
xor eax, eax
mov edx, dword [esp + 0x2c8]
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xf4]
movzx esi, byte [esp + 0x2d8]
jmp 0x4ea141
cmp ecx, 6
jne 0x4e9ba1
movzx eax, byte [edx + 0x340]
test al, al
je 0x4e9ae9
test ebx, ebx
jge 0x4e9aae
mov eax, ebx
xor ecx, ecx
jmp 0x4e9ab4
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4e9abc
xor edi, edi
jmp 0x4e9ac5
xor ebp, ebp
mov edi, dword [esp + 0xf4]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.004dc0f0
mov eax, dword [esp + 0x10]
lea ecx, [0x5d4a7c]
mov edx, eax
xor ebx, ebx
jmp 0x4e9b2c
test ebx, ebx
jge 0x4e9af3
mov eax, ebx
xor ecx, ecx
jmp 0x4e9af9
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4e9b01
xor edi, edi
jmp 0x4e9b0a
xor ebp, ebp
mov edi, dword [esp + 0xf4]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.004dba60
mov eax, dword [esp + 0x10]
lea ecx, [0x5d4980]
xor edx, edx
mov ebx, eax
mov ebp, dword [esp + 0xf4]
movzx esi, byte [esp + 0x2d8]
mov edi, ebx
xor ebx, ebx
mov dword [esp + 0x28c], ebx
xor ebp, ebp
mov dword [esp + 0x29c], ebp
xor esi, esi
mov dword [esp + 0x27c], esi
xor ebx, ebx
mov dword [esp + 0x290], ebx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0x298], eax
mov ebx, 0x18
mov dword [esp + 0x100], ebx
mov ebx, dword [esp + 0xc0]
xor eax, eax
mov ecx, edx
mov ebp, dword [esp + 0xf4]
movzx esi, byte [esp + 0x2d8]
mov edx, dword [esp + 0x2c8]
jmp 0x4ea141
test ebx, ebx
jge 0x4e9bab
mov eax, ebx
xor ecx, ecx
jmp 0x4e9bb1
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4e9bb9
xor edi, edi
jmp 0x4e9bc2
xor ebp, ebp
mov edi, dword [esp + 0xf4]
mov eax, dword [edx + 0x24]
mov esi, dword [edx + 0x28]
mov dword [esp + 0x108], esi
mov esi, dword [edx + 0x2c]
mov edx, dword [edx + 0x20]
mov dword [esp + 0x100], edx
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], esi
call fcn.004dcef0
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c8]
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xf4]
movzx esi, byte [esp + 0x2d8]
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x28c], eax
xor edx, edx
mov dword [esp + 0x29c], edx
xor ebx, ebx
mov dword [esp + 0x27c], ebx
xor ebp, ebp
mov dword [esp + 0x290], ebp
lea esi, [0x5d4964]
mov dword [esp + 0xdc], esi
mov dword [esp + 0x298], eax
xor eax, eax
mov edx, dword [esp + 0x2c8]
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xf4]
movzx esi, byte [esp + 0x2d8]
jmp 0x4ea141
cmp ecx, 0xc
jg 0x4e9e5a
cmp ecx, 0xb
jne 0x4e9d56
test ebx, ebx
jge 0x4e9c9e
mov eax, ebx
xor ecx, ecx
jmp 0x4e9ca4
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4e9cac
xor edi, edi
jmp 0x4e9cb5
xor ebp, ebp
mov edi, dword [esp + 0xf4]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.004dc0f0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x2c8]
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xf4]
movzx esi, byte [esp + 0x2d8]
mov ecx, eax
xor edi, edi
xor eax, eax
mov dword [esp + 0x28c], eax
xor edx, edx
mov dword [esp + 0x29c], edx
xor ebx, ebx
mov dword [esp + 0x27c], ebx
xor ebp, ebp
mov dword [esp + 0x290], ebp
lea esi, [0x5d4a7c]
mov dword [esp + 0xdc], esi
mov dword [esp + 0x298], ecx
mov eax, 0x20
mov dword [esp + 0x100], eax
xor eax, eax
mov edx, dword [esp + 0x2c8]
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xf4]
movzx esi, byte [esp + 0x2d8]
jmp 0x4ea141
movzx eax, byte [edx + 0x340]
test al, al
je 0x4e9da6
test ebx, ebx
jge 0x4e9d6b
mov eax, ebx
xor ecx, ecx
jmp 0x4e9d71
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4e9d79
xor edi, edi
jmp 0x4e9d82
xor ebp, ebp
mov edi, dword [esp + 0xf4]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.004dc450
mov eax, dword [esp + 0x10]
lea ecx, [0x5d4a60]
mov edx, eax
xor ebx, ebx
jmp 0x4e9de9
test ebx, ebx
jge 0x4e9db0
mov eax, ebx
xor ecx, ecx
jmp 0x4e9db6
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4e9dbe
xor edi, edi
jmp 0x4e9dc7
xor ebp, ebp
mov edi, dword [esp + 0xf4]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.004dca70
mov eax, dword [esp + 0x10]
lea ecx, [0x5d49f0]
xor edx, edx
mov ebx, eax
mov ebp, dword [esp + 0xf4]
movzx esi, byte [esp + 0x2d8]
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x28c], ebp
mov dword [esp + 0x29c], ebx
xor esi, esi
mov dword [esp + 0x27c], esi
mov dword [esp + 0x290], edx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0x298], eax
mov ebp, 0x10
mov dword [esp + 0x100], ebp
mov edx, dword [esp + 0x2c8]
mov ebx, dword [esp + 0xc0]
xor eax, eax
xor ecx, ecx
mov ebp, dword [esp + 0xf4]
movzx esi, byte [esp + 0x2d8]
jmp 0x4ea141
cmp ecx, 0xd
jne 0x4e9f25
test ebx, ebx
jge 0x4e9e6d
mov eax, ebx
xor ecx, ecx
jmp 0x4e9e73
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4e9e7b
xor edi, edi
jmp 0x4e9e84
xor ebp, ebp
mov edi, dword [esp + 0xf4]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.004dc450
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x2c8]
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xf4]
movzx esi, byte [esp + 0x2d8]
xor ecx, ecx
xor edi, edi
xor edx, edx
mov dword [esp + 0x28c], edx
xor ebx, ebx
mov dword [esp + 0x29c], ebx
xor ebp, ebp
mov dword [esp + 0x27c], ebp
mov dword [esp + 0x290], eax
lea esi, [0x5d4a60]
mov dword [esp + 0xdc], esi
mov dword [esp + 0x298], eax
mov ecx, 0x20
mov dword [esp + 0x100], ecx
xor eax, eax
mov edx, dword [esp + 0x2c8]
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xf4]
movzx esi, byte [esp + 0x2d8]
xor ecx, ecx
jmp 0x4ea141
cmp ecx, 0xe
jne 0x4ea032
movzx eax, byte [edx + 0x340]
test al, al
je 0x4e9f7e
test ebx, ebx
jge 0x4e9f43
mov eax, ebx
xor ecx, ecx
jmp 0x4e9f49
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4e9f51
xor edi, edi
jmp 0x4e9f5a
xor ebp, ebp
mov edi, dword [esp + 0xf4]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.004dc450
mov eax, dword [esp + 0x10]
lea ecx, [0x5d4a60]
mov edx, eax
xor ebx, ebx
jmp 0x4e9fc1
test ebx, ebx
jge 0x4e9f88
mov eax, ebx
xor ecx, ecx
jmp 0x4e9f8e
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4e9f96
xor edi, edi
jmp 0x4e9f9f
xor ebp, ebp
mov edi, dword [esp + 0xf4]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.004dbdc0
mov eax, dword [esp + 0x10]
lea ecx, [0x5d4a98]
xor edx, edx
mov ebx, eax
mov ebp, dword [esp + 0xf4]
movzx esi, byte [esp + 0x2d8]
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x28c], ebp
xor esi, esi
mov dword [esp + 0x29c], esi
mov dword [esp + 0x27c], ebx
mov dword [esp + 0x290], edx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0x298], eax
mov ebp, 0x30
mov dword [esp + 0x100], ebp
mov edx, dword [esp + 0x2c8]
mov ebx, dword [esp + 0xc0]
xor eax, eax
xor ecx, ecx
mov ebp, dword [esp + 0xf4]
movzx esi, byte [esp + 0x2d8]
jmp 0x4ea141
cmp ecx, 0xf
jne 0x4ea0fa
test ebx, ebx
jge 0x4ea045
mov eax, ebx
xor ecx, ecx
jmp 0x4ea04b
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4ea053
xor edi, edi
jmp 0x4ea05c
xor ebp, ebp
mov edi, dword [esp + 0xf4]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.004dc450
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x2c8]
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xf4]
movzx esi, byte [esp + 0x2d8]
xor ecx, ecx
xor edi, edi
xor edx, edx
mov dword [esp + 0x28c], edx
xor ebx, ebx
mov dword [esp + 0x29c], ebx
xor ebp, ebp
mov dword [esp + 0x27c], ebp
mov dword [esp + 0x290], eax
lea esi, [0x5d4a60]
mov dword [esp + 0xdc], esi
mov dword [esp + 0x298], eax
mov ecx, 0x40
mov dword [esp + 0x100], ecx
xor eax, eax
mov edx, dword [esp + 0x2c8]
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xf4]
movzx esi, byte [esp + 0x2d8]
xor ecx, ecx
jmp 0x4ea141
xor eax, eax
xor ecx, ecx
xor edi, edi
xor eax, eax
mov dword [esp + 0x28c], eax
xor eax, eax
mov dword [esp + 0x29c], eax
xor eax, eax
mov dword [esp + 0x27c], eax
xor eax, eax
mov dword [esp + 0x290], eax
xor eax, eax
mov dword [esp + 0xdc], eax
xor eax, eax
mov dword [esp + 0x298], eax
xor eax, eax
mov dword [esp + 0x100], eax
xor eax, eax
xchg esi, eax
test al, al
xchg esi, eax
jne 0x4ea295
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x280], edi
mov esi, dword [esp + 0x100]
lea edi, [esi + 7]
sar edi, 0x1f
shr edi, 0x1d
sar esi, 0x1f
mov eax, dword [esp + 0x100]
mul ebx
imul esi, ebx
add edx, esi
sar ebx, 0x1f
mov esi, dword [esp + 0x100]
imul ebx, esi
add edx, ebx
lea ebx, [esi + edi + 7]
mov esi, eax
add eax, 7
mov edi, edx
adc edx, 0
sar edx, 0x1f
shr edx, 0x1d
add edx, esi
adc edi, 0
add edx, 7
adc edi, 0
shr edx, 3
mov esi, edi
sar edi, 3
shl esi, 0x1d
or edx, esi
add edx, 1
adc edi, 0
mov esi, edx
sar edx, 0x1f
cmp edx, edi
jne 0x4ea25e
mov dword [esp + 0x104], esi
mov dword [esp + 0xc4], edi
mov dword [esp + 0x294], ecx
mov dword [esp + 0x108], ebx
lea eax, [0x52abc0]
mov dword [esp], eax
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], esi
call fcn.0044f290
mov eax, dword [esp + 0x108]
sar eax, 3
mov dword [esp + 0xfc], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c0], ecx
lea edx, [0x52abc0]
mov dword [esp], edx
mov edx, dword [esp + 0xc4]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x104]
mov dword [esp + 4], ebx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ebx
call fcn.0044f290
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov edx, dword [esp + 0x2c0]
xor ebx, ebx
jmp 0x4ea2de
mov dword [esp + 0x2dc], 0
mov dword [esp + 0x2e0], 0
lea eax, [0x5d4714]
mov dword [esp + 0x2e4], eax
lea eax, [0x5d425c]
mov dword [esp + 0x2e8], eax
add esp, 0x2c4
ret
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x2dc], eax
mov eax, dword [esp + 0x298]
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x2e4], 0
mov dword [esp + 0x2e8], 0
add esp, 0x2c4
ret
mov edi, dword [esp + 0xd0]
lea ecx, [edi + 1]
mov edx, ebx
mov ebx, eax
mov eax, esi
mov ebp, dword [esp + 0xf4]
cmp ecx, ebp
jge 0x4eaace
mov dword [esp + 0x2ac], eax
mov dword [esp + 0x2bc], edx
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xc8], ebx
nop
mov eax, dword [esp + 0x2cc]
mov dword [esp], eax
mov ecx, dword [esp + 0x2d0]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x104]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebx
call fcn.00486fc0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
test eax, eax
jne 0x4ea9c4
mov ebx, dword [esp + 0x104]
cmp ebx, 1
jb 0x4ec6ed
lea ecx, [ebx - 1]
mov ebp, ecx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 1
mov esi, dword [esp + 0x2bc]
lea edi, [esi + ebp]
cmp ebx, 1
jb 0x4ec6e1
mov dword [esp + 0xf8], ecx
mov dword [esp + 0x2b0], edi
movzx eax, byte [esi]
mov edx, ebx
mov ebx, dword [esp + 0x2ac]
add ebp, ebx
cmp al, 1
ja 0x4ea3ba
test al, al
je 0x4ea441
mov eax, dword [esp + 0xfc]
mov ebp, eax
jmp 0x4ec6b5
cmp al, 2
jne 0x4ea3c6
xor eax, eax
jmp 0x4ec688
cmp al, 3
jne 0x4ea3ee
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x10c], eax
xor eax, eax
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x10c]
jmp 0x4ec5cb
cmp al, 4
jne 0x4ea98d
mov dword [esp], edi
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x18], eax
call fcn.004e81e0
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0x104]
mov ebx, dword [esp + 0x2ac]
mov esi, dword [esp + 0x2bc]
mov edi, dword [esp + 0x2b0]
mov ebp, dword [esp + 0x2c8]
mov eax, dword [ebp + 0x30]
cmp eax, 7
jg 0x4ea746
cmp eax, 3
jg 0x4ea572
cmp eax, 1
jne 0x4ea4b8
movzx eax, byte [ebp + 0x340]
test al, al
je 0x4ea495
movzx eax, byte [ebp + 0x342]
mov byte [esp + 0x27], al
mov byte [esp + 0x12c], al
xor eax, eax
mov dword [esp + 0xbc], eax
movzx eax, byte [esp + 0x12c]
jmp 0x4ec45d
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x13c], eax
xor eax, eax
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x13c]
jmp 0x4ec2d9
cmp eax, 2
jne 0x4ea513
movzx eax, byte [ebp + 0x340]
test al, al
je 0x4ea4f0
movzx eax, byte [ebp + 0x342]
mov byte [esp + 0x26], al
mov byte [esp + 0x15c], al
xor eax, eax
mov dword [esp + 0xb4], eax
movzx eax, byte [esp + 0x15c]
jmp 0x4ec16c
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x16c], eax
xor eax, eax
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x16c]
jmp 0x4ebff1
cmp eax, 3
jne 0x4ea981
movzx eax, byte [ebp + 0x340]
test al, al
je 0x4ea54f
movzx eax, byte [ebp + 0x342]
mov byte [esp + 0x25], al
mov byte [esp + 0x17c], al
xor eax, eax
mov dword [esp + 0xac], eax
movzx eax, byte [esp + 0x17c]
jmp 0x4ebe96
mov eax, dword [esp + 0x2a0]
mov dword [esp + 0x18c], eax
xor eax, eax
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x18c]
jmp 0x4ebd12
cmp eax, 5
jg 0x4ea63d
cmp eax, 4
jne 0x4ea61a
movzx eax, byte [ebp + 0x340]
test al, al
je 0x4ea5b7
movzx eax, byte [ebp + 0x342]
mov byte [esp + 0x24], al
mov byte [esp + 0x1a4], al
xor eax, eax
mov dword [esp + 0xa4], eax
movzx eax, byte [esp + 0x1a4]
jmp 0x4ebc85
mov ebp, dword [esp + 0x2a0]
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0xc8]
cmp edx, eax
ja 0x4ebbe8
mov ebx, dword [ebp]
mov esi, dword [ebp + 8]
sub eax, edx
sub esi, edx
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, edx
add ebx, esi
cmp eax, ecx
jg 0x4ea5ed
mov ecx, eax
cmp ebx, edi
je 0x4ea60f
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
call fcn.004691a0
mov edx, dword [esp + 0xc8]
mov ebp, dword [esp + 0x2a0]
mov eax, dword [ebp + 0xc]
lea ebx, [edx + eax]
jmp 0x4ebbc5
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x1ac], eax
xor eax, eax
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x1ac]
jmp 0x4ebb7e
cmp eax, 6
jne 0x4ea723
movzx eax, byte [ebp + 0x340]
test al, al
je 0x4ea6d5
mov edx, dword [esp + 0x294]
mov eax, dword [edx + 4]
mov dword [esp + 0xcc], eax
mov ebx, dword [edx]
mov dword [esp + 0x284], ebx
movzx esi, byte [ebp + 0x342]
xchg esi, eax
mov byte [esp + 0x28], al
xchg esi, eax
movzx edx, byte [ebp + 0x344]
mov byte [esp + 0x29], dl
movzx ebp, byte [ebp + 0x346]
xchg ebp, eax
mov byte [esp + 0x2a], al
xchg ebp, eax
mov dword [esp + 0x1cc], eax
xor eax, eax
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xe4], eax
mov dword [esp + 0x1c4], ecx
xor ecx, ecx
mov dword [esp + 0xd8], ecx
mov eax, dword [esp + 0x1cc]
mov ecx, dword [esp + 0x1c4]
jmp 0x4eb9ab
mov ebp, dword [esp + 0x280]
mov eax, dword [ebp + 4]
mov edx, dword [ebp]
mov dword [esp + 0x1dc], eax
xor eax, eax
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xe0], eax
mov dword [esp + 0x1d4], ecx
xor ecx, ecx
mov dword [esp + 0xd4], ecx
mov eax, dword [esp + 0x1dc]
mov ecx, dword [esp + 0x1d4]
jmp 0x4eb863
mov eax, dword [esp + 0x28c]
mov dword [esp + 0x1ec], eax
xor eax, eax
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x1ec]
jmp 0x4eb6a0
cmp eax, 0xb
jg 0x4ea857
cmp eax, 9
jg 0x4ea79f
cmp eax, 8
jne 0x4ea77c
mov eax, dword [esp + 0x28c]
mov dword [esp + 0x1fc], eax
xor eax, eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x1fc]
jmp 0x4eb4fa
mov eax, dword [esp + 0x28c]
mov dword [esp + 0x20c], eax
xor eax, eax
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x20c]
jmp 0x4eb358
cmp eax, 0xa
jne 0x4ea7d6
mov eax, ebp
mov ebp, dword [esp + 0x28c]
cmp dword [ebp + 0x24], 0x100
je 0x4eb237
mov dword [esp + 0x214], eax
xor eax, eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x214]
jmp 0x4eb2da
mov ebp, dword [esp + 0x294]
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0xc8]
cmp edx, eax
ja 0x4eb22e
mov ebx, dword [ebp]
mov esi, dword [ebp + 8]
sub eax, edx
sub esi, edx
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, edx
add ebx, esi
cmp eax, ecx
jg 0x4ea80c
mov ecx, eax
cmp ebx, edi
je 0x4ea82e
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
call fcn.004691a0
mov edx, dword [esp + 0xc8]
mov ebp, dword [esp + 0x294]
mov eax, dword [ebp + 0xc]
lea ebx, [edx + eax]
mov edx, dword [esp + 0x104]
mov ebp, dword [esp + 0x2c8]
mov esi, dword [esp + 0x2bc]
mov eax, ebx
mov ebx, dword [esp + 0x2ac]
jmp 0x4ea2ce
cmp eax, 0xd
jg 0x4ea8e1
cmp eax, 0xc
jne 0x4ea8c1
movzx eax, byte [ebp + 0x340]
test al, al
je 0x4ea89e
movzx eax, word [ebp + 0x341]
rol ax, 8
mov word [esp + 0x42], ax
mov word [esp + 0x22c], ax
xor eax, eax
mov dword [esp + 0x84], eax
movzx eax, word [esp + 0x22c]
jmp 0x4eb1b6
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x234], eax
xor eax, eax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x234]
jmp 0x4eb0e1
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x23c], eax
xor eax, eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x23c]
jmp 0x4eafed
cmp eax, 0xe
jne 0x4ea95c
movzx eax, byte [ebp + 0x340]
test al, al
je 0x4ea93c
movzx eax, word [ebp + 0x341]
movzx edx, word [ebp + 0x343]
movzx ebp, word [ebp + 0x345]
rol ax, 8
mov word [esp + 0x42], ax
rol dx, 8
mov word [esp + 0x40], dx
rol bp, 8
mov word [esp + 0x3e], bp
mov word [esp + 0x254], ax
xor eax, eax
mov dword [esp + 0x78], eax
movzx eax, word [esp + 0x254]
jmp 0x4eae2a
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x25c], eax
xor eax, eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x25c]
jmp 0x4ead09
cmp eax, 0xf
jne 0x4ea981
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x264], eax
xor eax, eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x264]
jmp 0x4eabb5
mov eax, dword [esp + 0xc8]
jmp 0x4ea2ce
mov dword [esp + 0x2dc], 0
mov dword [esp + 0x2e0], 0
lea eax, [0x5d4700]
mov dword [esp + 0x2e4], eax
lea eax, [0x5d429c]
mov dword [esp + 0x2e8], eax
add esp, 0x2c4
ret
mov dword [esp + 0x2a8], edx
mov dword [esp + 0x2bc], ecx
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
cmp dword [0x687de8], eax
je 0x4ea9e6
xor ebp, ebp
jmp 0x4eaa2d
mov dword [esp + 0x2b8], eax
mov dword [esp + 0x2a4], ebx
mov ecx, dword [0x687dec]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call fcn.00403ea0
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x2bc]
mov edx, dword [esp + 0x2a8]
mov ebx, dword [esp + 0x2a4]
mov ebp, eax
mov eax, dword [esp + 0x2b8]
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x4eaa6c
cmp dword [0x687df0], eax
je 0x4eaa3f
xor eax, eax
jmp 0x4eaa68
mov ecx, dword [0x687df4]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call fcn.00403ea0
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x2bc]
mov edx, dword [esp + 0x2a8]
test al, al
je 0x4eaaa3
mov dword [esp + 0x2dc], 0
mov dword [esp + 0x2e0], 0
lea eax, [0x5d4700]
mov dword [esp + 0x2e4], eax
lea eax, [0x5d4284]
mov dword [esp + 0x2e8], eax
add esp, 0x2c4
ret
mov dword [esp + 0x2dc], 0
mov dword [esp + 0x2e0], 0
mov dword [esp + 0x2e4], ecx
mov dword [esp + 0x2e8], edx
add esp, 0x2c4
ret
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x2dc], eax
mov eax, dword [esp + 0x298]
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x2e4], 0
mov dword [esp + 0x2e8], 0
add esp, 0x2c4
ret
movzx ecx, word [esi]
rol cx, 8
mov edx, dword [esp + 0x2b4]
movzx edx, word [edx]
rol dx, 8
movzx eax, word [eax]
rol ax, 8
movzx ebp, word [ebp]
mov esi, dword [esp + 0x290]
mov dword [esp], esi
mov dword [esp + 4], ebx
mov edi, dword [esp + 0xd0]
mov dword [esp + 8], edi
mov word [esp + 0xc], cx
mov word [esp + 0xe], dx
mov word [esp + 0x10], ax
rol bp, 8
mov word [esp + 0x12], bp
call fcn.004dc390
mov eax, dword [esp + 0x70]
inc eax
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x290]
mov ebx, dword [esp + 0xf8]
mov ebp, dword [esp + 0xd0]
mov esi, dword [esp + 0x2b0]
mov ecx, ebx
mov edx, dword [esp + 0x104]
mov ebx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0x2c8]
mov esi, dword [esp + 0x2bc]
mov edi, dword [esp + 0x2b0]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xc0]
mov ebp, dword [esp + 0x70]
cmp ebp, eax
jge 0x4eac1d
shl ebp, 3
cmp ebp, ecx
jae 0x4eac61
lea edx, [ebp + 1]
mov ebx, dword [esp + 0x70]
lea esi, [edi + ebx*8]
cmp edx, ecx
jae 0x4eac5a
lea edx, [ebp + 2]
cmp edx, ecx
jae 0x4eac53
lea edx, [ebp + 3]
lea eax, [edi + ebx*8 + 2]
cmp edx, ecx
jae 0x4eac4c
lea edx, [ebp + 4]
cmp edx, ecx
jae 0x4eac45
mov dword [esp + 0x2b4], eax
lea edx, [ebp + 5]
lea eax, [edi + ebx*8 + 4]
cmp edx, ecx
jae 0x4eac3e
lea edx, [ebp + 6]
cmp edx, ecx
jae 0x4eac37
lea edx, [ebp + 7]
lea ebp, [edi + ebx*8 + 6]
cmp edx, ecx
jb 0x4eab07
jmp 0x4eac30
mov ebp, dword [esp + 0x2c8]
mov eax, dword [esp + 0xc8]
jmp 0x4ea2ce
mov eax, edx
call fcn.004688d0
mov eax, edx
call fcn.004688d0
mov eax, edx
call fcn.004688d0
mov eax, edx
call fcn.004688d0
mov eax, edx
call fcn.004688d0
mov eax, edx
call fcn.004688d0
mov eax, edx
call fcn.004688d0
mov eax, ebp
call fcn.004688d0
rol ax, 8
rol bp, 8
movzx ecx, word [edi + esi*2 + 4]
mov edx, dword [esp + 0x27c]
mov dword [esp], edx
mov ebx, dword [esp + 0x74]
mov dword [esp + 4], ebx
mov esi, dword [esp + 0xd0]
mov dword [esp + 8], esi
mov word [esp + 0xc], ax
mov word [esp + 0xe], bp
rol cx, 8
mov word [esp + 0x10], cx
mov word [esp + 0x12], 0xffff
call fcn.004dbd00
mov eax, dword [esp + 0x74]
inc eax
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x27c]
mov ebx, dword [esp + 0x2b0]
mov ebp, dword [esp + 0xf8]
mov esi, dword [esp + 0xd0]
mov ecx, ebp
mov edx, dword [esp + 0x104]
mov ebx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0x2c8]
mov esi, dword [esp + 0x2bc]
mov edi, dword [esp + 0x2b0]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xc0]
mov ebp, dword [esp + 0x74]
cmp ebp, eax
jge 0x4ead5b
lea edx, [ebp + ebp*2]
mov dword [esp + 0x108], edx
shl edx, 1
cmp edx, ecx
jae 0x4ead91
lea ebx, [edx + 1]
cmp ebx, ecx
jae 0x4ead8a
lea ebx, [edx + 2]
mov esi, dword [esp + 0x108]
movzx eax, word [edi + esi*2]
cmp ebx, ecx
jae 0x4ead83
lea ebx, [edx + 3]
cmp ebx, ecx
jae 0x4ead7c
lea ebx, [edx + 4]
movzx ebp, word [edi + esi*2 + 2]
cmp ebx, ecx
jae 0x4ead75
add edx, 5
cmp edx, ecx
jb 0x4eac68
jmp 0x4ead6e
mov ebp, dword [esp + 0x2c8]
mov eax, dword [esp + 0xc8]
jmp 0x4ea2ce
mov eax, edx
call fcn.004688d0
mov eax, ebx
call fcn.004688d0
mov eax, ebx
call fcn.004688d0
mov eax, ebx
call fcn.004688d0
mov eax, ebx
call fcn.004688d0
mov eax, edx
call fcn.004688d0
mov ecx, dword [esp + 0x290]
mov dword [esp], ecx
mov ebp, dword [esp + 0x78]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0xd0]
mov dword [esp + 8], esi
mov word [esp + 0xc], dx
mov word [esp + 0xe], ax
mov word [esp + 0x10], bx
movzx eax, word [esp + 0x3a]
mov word [esp + 0x12], ax
call fcn.004dc390
mov eax, dword [esp + 0x78]
inc eax
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x290]
movzx ebx, word [esp + 0x42]
mov ebp, dword [esp + 0xf8]
mov esi, dword [esp + 0x2b0]
mov edi, dword [esp + 0xd0]
mov ecx, ebp
movzx edx, word [esp + 0x40]
mov ebx, dword [esp + 0x2ac]
movzx ebp, word [esp + 0x3e]
mov esi, dword [esp + 0x2bc]
mov edi, dword [esp + 0x2b0]
mov dword [esp + 0x78], eax
movzx eax, word [esp + 0x42]
mov ebx, dword [esp + 0x78]
mov esi, dword [esp + 0xc0]
cmp ebx, esi
jge 0x4eaf0e
lea esi, [ebx + ebx*2]
mov dword [esp + 0x108], esi
shl esi, 1
cmp esi, ecx
jae 0x4eaf4d
lea ebx, [esi + 1]
cmp ebx, ecx
jae 0x4eaf46
lea ebx, [esi + 2]
mov ebp, dword [esp + 0x108]
movzx edx, word [edi + ebp*2]
cmp ebx, ecx
jae 0x4eaf3f
lea ebx, [esi + 3]
cmp ebx, ecx
jae 0x4eaf38
lea ebx, [esi + 4]
movzx eax, word [edi + ebp*2 + 2]
cmp ebx, ecx
jae 0x4eaf31
lea ebx, [esi + 5]
cmp ebx, ecx
jae 0x4eaf2a
rol dx, 8
movzx ebx, word [edi + ebp*2 + 4]
rol ax, 8
rol bx, 8
movzx ebp, word [esp + 0x42]
cmp dx, bp
jne 0x4eaeea
movzx esi, word [esp + 0x40]
cmp ax, si
jne 0x4eaee3
movzx esi, word [esp + 0x3e]
cmp bx, si
jne 0x4eaeef
mov word [esp + 0x244], ax
xor eax, eax
mov word [esp + 0x3a], ax
movzx eax, word [esp + 0x244]
jmp 0x4ead98
movzx esi, word [esp + 0x3e]
jmp 0x4eaeef
movzx esi, word [esp + 0x3e]
mov word [esp + 0x24c], ax
mov eax, 0xffffffff
mov word [esp + 0x3a], ax
movzx eax, word [esp + 0x24c]
jmp 0x4ead98
mov eax, esi
mov edx, dword [esp + 0x104]
mov ebx, dword [esp + 0x2ac]
mov esi, dword [esp + 0x2bc]
jmp 0x4ead5b
mov eax, ebx
call fcn.004688d0
mov eax, ebx
call fcn.004688d0
mov eax, ebx
call fcn.004688d0
mov eax, ebx
call fcn.004688d0
mov eax, ebx
call fcn.004688d0
mov eax, esi
call fcn.004688d0
movzx eax, word [esi]
rol ax, 8
movzx ecx, word [ebp]
mov edx, dword [esp + 0x290]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0xd0]
mov dword [esp + 8], ebp
mov word [esp + 0xc], ax
mov word [esp + 0xe], ax
mov word [esp + 0x10], ax
rol cx, 8
mov word [esp + 0x12], cx
call fcn.004dc390
mov eax, dword [esp + 0x7c]
inc eax
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x290]
mov ebx, dword [esp + 0xf8]
mov ebp, dword [esp + 0xd0]
mov esi, dword [esp + 0x2b0]
mov ecx, ebx
mov edx, dword [esp + 0x104]
mov ebx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0x2c8]
mov esi, dword [esp + 0x2bc]
mov edi, dword [esp + 0x2b0]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xc0]
mov ebp, dword [esp + 0x7c]
cmp ebp, eax
jge 0x4eb022
shl ebp, 2
cmp ebp, ecx
jae 0x4eb04a
lea edx, [ebp + 1]
mov ebx, dword [esp + 0x7c]
lea esi, [edi + ebx*4]
cmp edx, ecx
jae 0x4eb043
lea edx, [ebp + 2]
cmp edx, ecx
jae 0x4eb03c
lea edx, [ebp + 3]
lea ebp, [edi + ebx*4 + 2]
cmp edx, ecx
jb 0x4eaf54
jmp 0x4eb035
mov ebp, dword [esp + 0x2c8]
mov eax, dword [esp + 0xc8]
jmp 0x4ea2ce
mov eax, edx
call fcn.004688d0
mov eax, edx
call fcn.004688d0
mov eax, edx
call fcn.004688d0
mov eax, ebp
call fcn.004688d0
mov eax, dword [esp + 0x80]
movzx ecx, word [edi + eax*2]
mov edx, dword [esp + 0x29c]
mov dword [esp], edx
mov dword [esp + 4], eax
mov ebx, dword [esp + 0xd0]
mov dword [esp + 8], ebx
rol cx, 8
mov word [esp + 0xc], cx
call fcn.004dc9d0
mov eax, dword [esp + 0x80]
inc eax
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x29c]
mov ebx, dword [esp + 0xd0]
mov ebp, dword [esp + 0x2b0]
mov esi, dword [esp + 0xf8]
mov ecx, esi
mov edx, dword [esp + 0x104]
mov ebx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0x2c8]
mov esi, dword [esp + 0x2bc]
mov edi, dword [esp + 0x2b0]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xc0]
mov ebp, dword [esp + 0x80]
cmp ebp, eax
jge 0x4eb0fd
shl ebp, 1
cmp ebp, ecx
jae 0x4eb117
inc ebp
cmp ebp, ecx
jb 0x4eb051
jmp 0x4eb110
mov ebp, dword [esp + 0x2c8]
mov eax, dword [esp + 0xc8]
jmp 0x4ea2ce
mov eax, ebp
call fcn.004688d0
mov eax, ebp
call fcn.004688d0
mov eax, dword [esp + 0x290]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov ecx, dword [esp + 0xd0]
mov dword [esp + 8], ecx
mov word [esp + 0xc], bx
mov word [esp + 0xe], bx
mov word [esp + 0x10], bx
movzx edx, word [esp + 0x3c]
mov word [esp + 0x12], dx
call fcn.004dc390
mov eax, dword [esp + 0x84]
inc eax
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x290]
movzx ebx, word [esp + 0x42]
mov ebp, dword [esp + 0xd0]
mov esi, dword [esp + 0x2b0]
mov edi, dword [esp + 0xf8]
mov ecx, edi
mov edx, dword [esp + 0x104]
mov ebx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0x2c8]
mov esi, dword [esp + 0x2bc]
mov edi, dword [esp + 0x2b0]
mov dword [esp + 0x84], eax
movzx eax, word [esp + 0x42]
mov ebp, dword [esp + 0x84]
mov edx, dword [esp + 0xc0]
cmp ebp, edx
jge 0x4eb212
shl ebp, 1
cmp ebp, ecx
jae 0x4eb227
inc ebp
cmp ebp, ecx
jae 0x4eb220
mov ebp, dword [esp + 0x84]
movzx ebx, word [edi + ebp*2]
rol bx, 8
cmp bx, ax
jne 0x4eb1fb
mov word [esp + 0x21c], ax
xor eax, eax
mov word [esp + 0x3c], ax
jmp 0x4eb11e
mov word [esp + 0x224], ax
mov eax, 0xffffffff
mov word [esp + 0x3c], ax
jmp 0x4eb11e
mov eax, edx
mov edx, dword [esp + 0x104]
jmp 0x4eb0fd
mov eax, ebp
call fcn.004688d0
mov eax, ebp
call fcn.004688d0
mov ecx, eax
mov eax, edx
call fcn.00468930
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0xc8]
cmp edx, eax
ja 0x4eb2ab
mov ebx, dword [ebp]
mov esi, dword [ebp + 8]
sub eax, edx
sub esi, edx
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, edx
add ebx, esi
cmp eax, ecx
jg 0x4eb262
mov ecx, eax
cmp ebx, edi
je 0x4eb284
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
call fcn.004691a0
mov edx, dword [esp + 0xc8]
mov ebp, dword [esp + 0x28c]
mov ecx, dword [ebp + 0xc]
lea eax, [edx + ecx]
mov edx, dword [esp + 0x104]
mov ebx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0x2c8]
mov esi, dword [esp + 0x2bc]
jmp 0x4ea2ce
mov ecx, eax
mov eax, edx
call fcn.00468930
lea eax, [ebx + 1]
mov edx, dword [esp + 0x104]
mov ebx, dword [esp + 0x2ac]
mov esi, dword [esp + 0x2bc]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x2c8]
mov ebx, dword [esp + 0x88]
mov esi, dword [esp + 0xc0]
cmp ebx, esi
jge 0x4eb308
cmp ebx, ecx
jae 0x4eb324
mov eax, dword [ebp + 0x24]
movzx edx, byte [ebx + edi]
cmp eax, edx
jg 0x4eb2b4
mov eax, dword [ebp + 0x28]
inc edx
cmp eax, edx
jb 0x4eb31b
mov dword [ebp + 0x24], edx
jmp 0x4eb2b4
mov ebx, dword [esp + 0x2ac]
mov esi, dword [esp + 0x2bc]
jmp 0x4eb237
mov ecx, edx
mov edx, eax
call fcn.00468910
mov eax, ebx
call fcn.004688d0
lea ebp, [esi + 2]
mov esi, dword [esp + 0xd0]
mov edi, dword [esp + 0x2b0]
mov ebx, dword [esp + 0x2ac]
mov esi, dword [esp + 0x2bc]
mov dword [esp + 0x8c], ebp
mov ebp, dword [esp + 0x2c8]
mov ebp, dword [esp + 0x8c]
mov ebx, dword [esp + 0xc0]
cmp ebp, ebx
jge 0x4eb3a4
shr ebp, 0x1f
mov esi, dword [esp + 0x8c]
add ebp, esi
sar ebp, 1
cmp ebp, ecx
jae 0x4eb4c6
movzx ebp, byte [ebp + edi]
mov dword [esp + 0x204], eax
xor eax, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x204]
jmp 0x4eb3e9
mov edx, dword [esp + 0x104]
jmp 0x4eb32b
mov ebx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0x2c8]
mov eax, dword [esp + 0xc8]
jmp 0x4ea2ce
lea ecx, [edi + 1]
movzx ebp, byte [esp + 0x2e]
shl ebp, 4
mov edx, dword [esp + 0xd0]
mov edx, dword [esp + 0x104]
mov edi, dword [esp + 0x2b0]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0xf8]
mov edi, dword [esp + 0x4c]
cmp edi, 2
jge 0x4eb32b
lea edx, [edi + esi]
cmp ebx, edx
jle 0x4eb39b
xchg ebp, eax
mov byte [esp + 0x2e], al
xchg ebp, eax
xchg ebp, eax
shr al, 4
xchg ebp, eax
xchg ebp, eax
movzx ecx, al
xchg ebp, eax
cmp dword [eax + 0x24], ecx
jg 0x4eb42c
xchg ebp, eax
mov byte [esp + 0x2b], al
xchg ebp, eax
mov ebp, dword [eax + 0x28]
inc ecx
cmp ebp, ecx
jb 0x4eb4bf
mov dword [eax + 0x24], ecx
movzx ebp, byte [esp + 0x2b]
mov ecx, dword [eax + 0x10]
cmp ecx, edx
jg 0x4eb3be
mov ebx, dword [eax + 0x18]
cmp ebx, edx
jle 0x4eb4aa
mov ebx, dword [eax + 0x14]
mov esi, dword [esp + 0xd0]
cmp esi, ebx
jl 0x4eb497
mov edi, dword [eax + 0x1c]
cmp esi, edi
jge 0x4eb480
mov edi, dword [eax + 4]
sub esi, ebx
imul esi, dword [eax + 0xc]
sub edx, ecx
lea ebx, [edx + esi]
nop
cmp edi, ebx
jbe 0x4eb4b6
mov esi, dword [eax]
xchg ebp, eax
mov byte [esi + ebx], al
xchg ebp, eax
mov ebx, dword [esp + 0xc0]
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x4c]
jmp 0x4eb3be
mov ebx, dword [esp + 0xc0]
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x4c]
jmp 0x4eb3be
mov ebx, dword [esp + 0xc0]
mov esi, dword [esp + 0x8c]
jmp 0x4eb3be
mov ebx, dword [esp + 0xc0]
jmp 0x4eb3be
mov eax, ebx
mov ecx, edi
call fcn.004688d0
mov edx, ebp
call fcn.00468910
mov eax, ebp
call fcn.004688d0
lea ebp, [esi + 4]
mov esi, dword [esp + 0xd0]
mov edi, dword [esp + 0x2b0]
mov ebx, dword [esp + 0x2ac]
mov esi, dword [esp + 0x2bc]
mov dword [esp + 0x90], ebp
mov ebp, dword [esp + 0x2c8]
mov ebp, dword [esp + 0x90]
mov ebx, dword [esp + 0xc0]
cmp ebp, ebx
jge 0x4eb54a
sar ebp, 0x1f
shr ebp, 0x1e
mov esi, dword [esp + 0x90]
add ebp, esi
sar ebp, 2
cmp ebp, ecx
jae 0x4eb66c
movzx ebp, byte [ebp + edi]
mov dword [esp + 0x1f4], eax
xor eax, eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x1f4]
jmp 0x4eb58f
mov edx, dword [esp + 0x104]
jmp 0x4eb4cd
mov ebx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0x2c8]
mov eax, dword [esp + 0xc8]
jmp 0x4ea2ce
lea ecx, [edi + 1]
movzx ebp, byte [esp + 0x2f]
shl ebp, 2
mov edx, dword [esp + 0xd0]
mov edx, dword [esp + 0x104]
mov edi, dword [esp + 0x2b0]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0xf8]
mov edi, dword [esp + 0x50]
cmp edi, 4
jge 0x4eb4cd
lea edx, [edi + esi]
cmp ebx, edx
jle 0x4eb541
xchg ebp, eax
mov byte [esp + 0x2f], al
xchg ebp, eax
xchg ebp, eax
shr al, 6
xchg ebp, eax
xchg ebp, eax
movzx ecx, al
xchg ebp, eax
cmp dword [eax + 0x24], ecx
jg 0x4eb5d2
xchg ebp, eax
mov byte [esp + 0x2c], al
xchg ebp, eax
mov ebp, dword [eax + 0x28]
inc ecx
cmp ebp, ecx
jb 0x4eb665
mov dword [eax + 0x24], ecx
movzx ebp, byte [esp + 0x2c]
mov ecx, dword [eax + 0x10]
cmp ecx, edx
jg 0x4eb564
mov ebx, dword [eax + 0x18]
cmp ebx, edx
jle 0x4eb650
mov ebx, dword [eax + 0x14]
mov esi, dword [esp + 0xd0]
cmp esi, ebx
jl 0x4eb63d
mov edi, dword [eax + 0x1c]
cmp esi, edi
jge 0x4eb626
mov edi, dword [eax + 4]
sub esi, ebx
imul esi, dword [eax + 0xc]
sub edx, ecx
lea ebx, [edx + esi]
nop
cmp edi, ebx
jbe 0x4eb65c
mov esi, dword [eax]
xchg ebp, eax
mov byte [esi + ebx], al
xchg ebp, eax
mov ebx, dword [esp + 0xc0]
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x50]
jmp 0x4eb564
mov ebx, dword [esp + 0xc0]
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x50]
jmp 0x4eb564
mov ebx, dword [esp + 0xc0]
mov esi, dword [esp + 0x90]
jmp 0x4eb564
mov ebx, dword [esp + 0xc0]
jmp 0x4eb564
mov eax, ebx
mov ecx, edi
call fcn.004688d0
mov edx, ebp
call fcn.00468910
mov eax, ebp
call fcn.004688d0
lea ebp, [esi + 8]
mov esi, dword [esp + 0xd0]
mov edi, dword [esp + 0x2b0]
mov ebx, dword [esp + 0x2ac]
mov esi, dword [esp + 0x2bc]
mov dword [esp + 0x94], ebp
mov ebp, dword [esp + 0x2c8]
mov ebp, dword [esp + 0x94]
mov ebx, dword [esp + 0xc0]
cmp ebp, ebx
jge 0x4eb6f0
sar ebp, 0x1f
shr ebp, 0x1d
mov esi, dword [esp + 0x94]
add ebp, esi
sar ebp, 3
cmp ebp, ecx
jae 0x4eb811
movzx ebp, byte [ebp + edi]
mov dword [esp + 0x1e4], eax
xor eax, eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x1e4]
jmp 0x4eb734
mov edx, dword [esp + 0x104]
jmp 0x4eb673
mov ebx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0x2c8]
mov eax, dword [esp + 0xc8]
jmp 0x4ea2ce
lea ecx, [edi + 1]
movzx ebp, byte [esp + 0x30]
shl ebp, 1
mov edx, dword [esp + 0xd0]
mov edx, dword [esp + 0x104]
mov edi, dword [esp + 0x2b0]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0xf8]
mov edi, dword [esp + 0x54]
cmp edi, 8
jge 0x4eb673
lea edx, [edi + esi]
cmp ebx, edx
jle 0x4eb6e7
xchg ebp, eax
mov byte [esp + 0x30], al
xchg ebp, eax
xchg ebp, eax
shr al, 7
xchg ebp, eax
xchg ebp, eax
movzx ecx, al
xchg ebp, eax
cmp dword [eax + 0x24], ecx
jg 0x4eb777
xchg ebp, eax
mov byte [esp + 0x2d], al
xchg ebp, eax
mov ebp, dword [eax + 0x28]
inc ecx
cmp ebp, ecx
jb 0x4eb80a
mov dword [eax + 0x24], ecx
movzx ebp, byte [esp + 0x2d]
mov ecx, dword [eax + 0x10]
cmp ecx, edx
jg 0x4eb70a
mov ebx, dword [eax + 0x18]
cmp ebx, edx
jle 0x4eb7f5
mov ebx, dword [eax + 0x14]
mov esi, dword [esp + 0xd0]
cmp esi, ebx
jl 0x4eb7e2
mov edi, dword [eax + 0x1c]
cmp esi, edi
jge 0x4eb7cb
mov edi, dword [eax + 4]
sub esi, ebx
imul esi, dword [eax + 0xc]
sub edx, ecx
lea ebx, [edx + esi]
nop
cmp edi, ebx
jbe 0x4eb801
mov esi, dword [eax]
xchg ebp, eax
mov byte [esi + ebx], al
xchg ebp, eax
mov ebx, dword [esp + 0xc0]
mov esi, dword [esp + 0x94]
mov edi, dword [esp + 0x54]
jmp 0x4eb70a
mov ebx, dword [esp + 0xc0]
mov esi, dword [esp + 0x94]
mov edi, dword [esp + 0x54]
jmp 0x4eb70a
mov ebx, dword [esp + 0xc0]
mov esi, dword [esp + 0x94]
jmp 0x4eb70a
mov ebx, dword [esp + 0xc0]
jmp 0x4eb70a
mov eax, ebx
mov ecx, edi
call fcn.004688d0
mov edx, ebp
call fcn.00468910
mov eax, ebp
call fcn.004688d0
mov byte [ebx + edx + 3], 0xff
mov esi, dword [esp + 0x98]
inc esi
add ebx, 4
add ebp, 3
mov edi, dword [esp + 0xc0]
mov edi, dword [esp + 0x2b0]
mov dword [esp + 0x98], esi
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xd4], ebp
mov ebx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0x280]
mov esi, dword [esp + 0x2bc]
mov ebx, dword [esp + 0x98]
mov esi, dword [esp + 0xc0]
cmp ebx, esi
jge 0x4eb8e7
mov ebp, dword [esp + 0xd4]
cmp ebp, ecx
jae 0x4eb946
movzx esi, byte [ebp + edi]
mov ebx, dword [esp + 0xe0]
cmp ebx, eax
jae 0x4eb93d
xchg esi, eax
mov byte [edx + ebx], al
xchg esi, eax
lea esi, [ebp + 1]
cmp esi, ecx
jae 0x4eb936
lea esi, [ebx + 1]
movzx edi, byte [ebp + edi + 1]
cmp eax, esi
jbe 0x4eb92d
xchg edi, eax
mov byte [ebx + edx + 1], al
xchg edi, eax
lea esi, [ebp + 2]
cmp esi, ecx
jae 0x4eb926
lea esi, [ebx + 2]
mov edi, dword [esp + 0x2b0]
movzx edi, byte [ebp + edi + 2]
cmp eax, esi
jbe 0x4eb91d
xchg edi, eax
mov byte [ebx + edx + 2], al
xchg edi, eax
lea esi, [ebx + 3]
cmp eax, esi
ja 0x4eb818
jmp 0x4eb914
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0xc8]
add eax, ecx
mov edx, dword [esp + 0x104]
mov ebx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0x2c8]
mov esi, dword [esp + 0x2bc]
jmp 0x4ea2ce
mov ecx, eax
mov eax, esi
call fcn.004688d0
mov ecx, eax
mov eax, esi
call fcn.004688d0
mov eax, esi
call fcn.004688d0
mov ecx, eax
mov eax, esi
call fcn.004688d0
mov eax, esi
call fcn.004688d0
mov ecx, eax
mov eax, ebx
call fcn.004688d0
mov eax, ebp
call fcn.004688d0
movzx eax, byte [esp + 0x38]
mov byte [esi + ebp + 3], al
mov eax, dword [esp + 0x9c]
inc eax
lea ebx, [esi + 4]
mov edx, dword [esp + 0xd8]
add edx, 3
mov esi, dword [esp + 0xc0]
movzx ebp, byte [esp + 0x2a]
movzx esi, byte [esp + 0x28]
mov edi, dword [esp + 0x2b0]
mov dword [esp + 0x9c], eax
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xd8], edx
mov eax, dword [esp + 0xcc]
movzx edx, byte [esp + 0x29]
mov ebx, dword [esp + 0x284]
mov ebx, dword [esp + 0x9c]
mov ebp, dword [esp + 0xc0]
cmp ebx, ebp
jge 0x4eba8e
mov ebp, dword [esp + 0xd8]
cmp ebp, ecx
jae 0x4ebae1
lea ebx, [ebp + 1]
movzx eax, byte [ebp + edi]
cmp ebx, ecx
jae 0x4ebada
lea ebx, [ebp + 2]
movzx edx, byte [ebp + edi + 1]
cmp ebx, ecx
jae 0x4ebad3
movzx ebx, byte [ebp + edi + 2]
xchg esi, ebx
cmp al, bl
xchg esi, ebx
jne 0x4eba31
movzx esi, byte [esp + 0x29]
xchg esi, eax
cmp dl, al
xchg esi, eax
jne 0x4eba2a
movzx esi, byte [esp + 0x2a]
xchg esi, eax
cmp bl, al
xchg esi, eax
jne 0x4eba36
mov byte [esp + 0x1b4], al
xor eax, eax
mov byte [esp + 0x38], al
movzx eax, byte [esp + 0x1b4]
jmp 0x4eba4e
movzx esi, byte [esp + 0x2a]
jmp 0x4eba36
movzx esi, byte [esp + 0x2a]
mov byte [esp + 0x1bc], al
mov eax, 0xffffffff
mov byte [esp + 0x38], al
movzx eax, byte [esp + 0x1bc]
mov esi, dword [esp + 0xe4]
mov edi, dword [esp + 0xcc]
cmp esi, edi
jae 0x4ebaca
mov ebp, dword [esp + 0x284]
mov byte [ebp + esi], al
lea eax, [esi + 1]
cmp edi, eax
jbe 0x4ebac3
mov byte [esi + ebp + 1], dl
lea eax, [esi + 2]
cmp edi, eax
jbe 0x4ebabc
mov byte [esi + ebp + 2], bl
lea eax, [esi + 3]
cmp edi, eax
ja 0x4eb94d
jmp 0x4ebab5
mov ecx, dword [esp + 0x294]
mov edx, dword [ecx + 0xc]
mov ebx, dword [esp + 0xc8]
lea eax, [ebx + edx]
mov ebp, dword [esp + 0x280]
mov esi, dword [esp + 0xc0]
jmp 0x4eb8f3
mov ecx, edi
call fcn.004688d0
mov ecx, edi
call fcn.004688d0
mov ecx, edi
call fcn.004688d0
mov eax, esi
mov ecx, edi
call fcn.004688d0
mov eax, ebx
call fcn.004688d0
mov eax, ebx
call fcn.004688d0
mov eax, ebp
call fcn.004688d0
movzx eax, byte [ebx]
lea ecx, [edi + edx*2 + 1]
movzx ecx, byte [ecx]
mov ebx, dword [esp + 0x294]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov ebp, dword [esp + 0xd0]
mov dword [esp + 8], ebp
mov byte [esp + 0xc], al
mov byte [esp + 0xd], al
mov byte [esp + 0xe], al
mov byte [esp + 0xf], cl
call fcn.004dc040
mov eax, dword [esp + 0xa0]
inc eax
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x294]
mov ebx, dword [esp + 0x2b0]
mov ebp, dword [esp + 0xd0]
mov esi, dword [esp + 0xf8]
mov ecx, esi
mov edx, dword [esp + 0x104]
mov ebx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0x2c8]
mov esi, dword [esp + 0x2bc]
mov edi, dword [esp + 0x2b0]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xc0]
mov ebp, dword [esp + 0xa0]
cmp ebp, eax
jge 0x4ebba4
shl ebp, 1
cmp ebp, ecx
jae 0x4ebbbe
inc ebp
mov edx, dword [esp + 0xa0]
lea ebx, [edi + edx*2]
cmp ebp, ecx
jb 0x4ebae8
jmp 0x4ebbb7
mov ebp, dword [esp + 0x2c8]
mov eax, dword [esp + 0xc8]
jmp 0x4ea2ce
mov eax, ebp
call fcn.004688d0
mov eax, ebp
call fcn.004688d0
mov edx, dword [esp + 0x104]
mov ebp, dword [esp + 0x2c8]
mov esi, dword [esp + 0x2bc]
mov eax, ebx
mov ebx, dword [esp + 0x2ac]
jmp 0x4ea2ce
mov ecx, eax
mov eax, edx
call fcn.00468930
mov eax, dword [esp + 0x294]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov ecx, dword [esp + 0xd0]
mov dword [esp + 8], ecx
mov byte [esp + 0xc], bl
mov byte [esp + 0xd], bl
mov byte [esp + 0xe], bl
movzx edx, byte [esp + 0x35]
mov byte [esp + 0xf], dl
call fcn.004dc040
mov eax, dword [esp + 0xa4]
inc eax
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x294]
movzx ebx, byte [esp + 0x24]
mov ebp, dword [esp + 0xd0]
mov esi, dword [esp + 0x2b0]
mov edi, dword [esp + 0xf8]
mov ecx, edi
mov edx, dword [esp + 0x104]
mov ebx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0x2c8]
mov esi, dword [esp + 0x2bc]
mov edi, dword [esp + 0x2b0]
mov dword [esp + 0xa4], eax
movzx eax, byte [esp + 0x24]
mov ebp, dword [esp + 0xa4]
mov edx, dword [esp + 0xc0]
cmp ebp, edx
jge 0x4ebccb
cmp ebp, ecx
jae 0x4ebcde
movzx ebx, byte [ebp + edi]
cmp bl, al
jne 0x4ebcb6
mov byte [esp + 0x194], al
xor eax, eax
mov byte [esp + 0x35], al
jmp 0x4ebbf1
mov byte [esp + 0x19c], al
mov eax, 0xffffffff
mov byte [esp + 0x35], al
jmp 0x4ebbf1
mov ebp, dword [esp + 0x2a0]
mov ebx, dword [esp + 0xc8]
jmp 0x4ebbc5
mov eax, ebp
call fcn.004688d0
add ebx, 2
mov ebp, dword [esp + 0xd0]
mov edx, dword [esp + 0x104]
mov ebp, dword [esp + 0x2c8]
mov esi, dword [esp + 0x2bc]
mov dword [esp + 0xa8], ebx
mov ebx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0xa8]
mov edx, dword [esp + 0xc0]
cmp ebp, edx
jge 0x4ebd5e
shr ebp, 0x1f
mov ebx, dword [esp + 0xa8]
add ebp, ebx
sar ebp, 1
cmp ebp, ecx
jae 0x4ebe5b
movzx ebp, byte [ebp + edi]
mov dword [esp + 0x184], eax
xor eax, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x184]
jmp 0x4ebdb3
mov edi, dword [esp + 0x2b0]
jmp 0x4ebce5
mov edx, dword [esp + 0x104]
mov ebp, dword [esp + 0x2c8]
mov eax, dword [esp + 0xc8]
jmp 0x4ea2ce
lea ecx, [esi + 1]
movzx ebp, byte [esp + 0x31]
shl ebp, 4
mov edx, dword [esp + 0xa8]
mov esi, dword [esp + 0xc0]
mov edx, esi
mov ebx, dword [esp + 0xa8]
mov esi, dword [esp + 0x2bc]
mov edi, dword [esp + 0x2b0]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xf8]
mov esi, dword [esp + 0x58]
cmp esi, 2
jge 0x4ebce5
lea edi, [esi + ebx]
cmp edx, edi
jle 0x4ebd55
xchg ebp, eax
mov byte [esp + 0x31], al
xchg ebp, eax
xchg ebp, eax
shr al, 4
xchg ebp, eax
xchg ebp, eax
mov byte [esp + 0x39], al
xchg ebp, eax
shl ebp, 4
mov ecx, dword [eax + 0x10]
movzx edx, byte [esp + 0x39]
add edx, ebp
cmp ecx, edi
jg 0x4ebe46
mov ebp, dword [eax + 0x18]
cmp ebp, edi
jle 0x4ebe3a
mov ebp, dword [eax + 0x14]
mov ebx, dword [esp + 0xd0]
cmp ebx, ebp
jl 0x4ebd78
mov esi, dword [eax + 0x1c]
cmp ebx, esi
jge 0x4ebe31
mov esi, dword [eax + 4]
sub ebx, ebp
imul ebx, dword [eax + 0xc]
sub edi, ecx
add ebx, edi
nop
cmp esi, ebx
jbe 0x4ebe52
mov ebp, dword [eax]
mov byte [ebp + ebx], dl
mov ebx, dword [esp + 0xd0]
mov esi, dword [esp + 0x58]
jmp 0x4ebd78
mov esi, dword [esp + 0x58]
jmp 0x4ebd78
mov ebx, dword [esp + 0xd0]
jmp 0x4ebd78
mov ebx, dword [esp + 0xd0]
jmp 0x4ebd78
mov eax, ebx
mov ecx, esi
call fcn.004688d0
mov eax, ebp
call fcn.004688d0
add ebx, 2
mov ebp, dword [esp + 0x294]
mov esi, dword [esp + 0xd0]
mov edx, dword [esp + 0x104]
mov ebp, dword [esp + 0x2c8]
mov esi, dword [esp + 0x2bc]
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0xac]
mov edx, dword [esp + 0xc0]
cmp ebp, edx
jge 0x4ebedd
shr ebp, 0x1f
mov ebx, dword [esp + 0xac]
add ebp, ebx
sar ebp, 1
cmp ebp, ecx
jae 0x4ebfbd
movzx ebp, byte [ebp + edi]
mov byte [esp + 0x174], al
xor eax, eax
mov dword [esp + 0x5c], eax
movzx eax, byte [esp + 0x174]
jmp 0x4ebf72
mov eax, dword [esp + 0x2a0]
jmp 0x4ebd5e
mov eax, dword [esp + 0x294]
mov dword [esp], eax
mov dword [esp + 4], esi
mov ecx, dword [esp + 0xd0]
mov dword [esp + 8], ecx
xchg ebp, eax
mov byte [esp + 0xc], al
xchg ebp, eax
xchg ebp, eax
mov byte [esp + 0xd], al
xchg ebp, eax
xchg ebp, eax
mov byte [esp + 0xe], al
xchg ebp, eax
xchg edi, eax
mov byte [esp + 0xf], al
xchg edi, eax
call fcn.004dc040
mov eax, dword [esp + 0x5c]
inc eax
movzx ebp, byte [esp + 0x32]
shl ebp, 4
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xc0]
mov ebx, dword [esp + 0x294]
movzx esi, byte [esp + 0x25]
mov edi, dword [esp + 0xd0]
mov ecx, dword [esp + 0xf8]
mov ebx, dword [esp + 0xac]
mov esi, dword [esp + 0x2bc]
mov edi, dword [esp + 0x2b0]
mov dword [esp + 0x5c], eax
movzx eax, byte [esp + 0x25]
mov esi, dword [esp + 0x5c]
cmp esi, 2
jge 0x4ebe62
add esi, ebx
cmp edx, esi
jle 0x4ebe62
xchg ebp, eax
mov byte [esp + 0x32], al
xchg ebp, eax
xchg ebp, eax
shr al, 4
xchg ebp, eax
xchg ebp, eax
mov byte [esp + 0x39], al
xchg ebp, eax
shl ebp, 4
movzx edi, byte [esp + 0x39]
add ebp, edi
xchg ebp, ebx
cmp al, bl
xchg ebp, ebx
jne 0x4ebfb3
xor edi, edi
jmp 0x4ebee9
mov edi, 0xffffffff
jmp 0x4ebee9
mov eax, ebp
call fcn.004688d0
add edx, 4
mov ebx, dword [esp + 0x2a0]
mov ebp, dword [esp + 0xd0]
mov ebx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0x2c8]
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0x104]
mov ebp, dword [esp + 0xb0]
cmp ebp, eax
jge 0x4ec03a
sar ebp, 0x1f
shr ebp, 0x1e
mov edx, dword [esp + 0xb0]
add ebp, edx
sar ebp, 2
cmp ebp, ecx
jae 0x4ec131
movzx ebp, byte [ebp + edi]
mov dword [esp + 0x164], eax
xor eax, eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x164]
jmp 0x4ec07a
mov esi, dword [esp + 0x2bc]
jmp 0x4ebfc4
mov ebp, dword [esp + 0x2c8]
mov eax, dword [esp + 0xc8]
jmp 0x4ea2ce
lea ecx, [ebx + 1]
shl ebp, 2
mov ebx, dword [esp + 0xd0]
mov ebx, dword [esp + 0x2ac]
mov esi, dword [esp + 0x2bc]
mov edi, dword [esp + 0x2b0]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0xf8]
mov ebx, dword [esp + 0x60]
cmp ebx, 4
jge 0x4ebfc4
lea esi, [ebx + edx]
cmp eax, esi
jle 0x4ec031
mov edi, dword [esp + 0x2a0]
mov ecx, dword [edi + 0x10]
cmp ecx, esi
jg 0x4ec04d
mov eax, dword [edi + 0x18]
cmp eax, esi
jle 0x4ec11e
mov eax, dword [edi + 0x14]
mov edx, dword [esp + 0xd0]
cmp edx, eax
jl 0x4ec10b
mov ebx, dword [edi + 0x1c]
cmp edx, ebx
jge 0x4ec0f4
mov ebx, dword [edi + 4]
sub edx, eax
imul edx, dword [edi + 0xc]
sub esi, ecx
lea eax, [esi + edx]
nop
cmp ebx, eax
jbe 0x4ec12a
mov edx, ebp
xchg ebp, eax
shr al, 6
xchg ebp, eax
imul ebx, ebp, 0x55
mov ebp, dword [edi]
mov byte [ebp + eax], bl
mov eax, dword [esp + 0xc0]
mov ebx, dword [esp + 0x60]
mov ebp, edx
mov edx, dword [esp + 0xb0]
jmp 0x4ec04d
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xb0]
mov ebx, dword [esp + 0x60]
jmp 0x4ec04d
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xb0]
jmp 0x4ec04d
mov eax, dword [esp + 0xc0]
jmp 0x4ec04d
mov ecx, ebx
call fcn.004688d0
mov eax, ebp
call fcn.004688d0
add ebx, 4
mov ebp, dword [esp + 0x294]
mov esi, dword [esp + 0xd0]
mov edx, dword [esp + 0x104]
mov ebp, dword [esp + 0x2c8]
mov esi, dword [esp + 0x2bc]
mov dword [esp + 0xb4], ebx
mov ebx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0xb4]
mov edx, dword [esp + 0xc0]
cmp ebp, edx
jge 0x4ec1b7
sar ebp, 0x1f
shr ebp, 0x1e
mov ebx, dword [esp + 0xb4]
add ebp, ebx
sar ebp, 2
cmp ebp, ecx
jae 0x4ec2a5
movzx ebp, byte [ebp + edi]
mov byte [esp + 0x154], al
xor eax, eax
mov dword [esp + 0x64], eax
movzx eax, byte [esp + 0x154]
jmp 0x4ec251
mov eax, edx
mov edx, dword [esp + 0x104]
jmp 0x4ec03a
mov eax, dword [esp + 0x294]
mov dword [esp], eax
mov dword [esp + 4], esi
mov ecx, dword [esp + 0xd0]
mov dword [esp + 8], ecx
xchg ebp, eax
mov byte [esp + 0xc], al
xchg ebp, eax
xchg ebp, eax
mov byte [esp + 0xd], al
xchg ebp, eax
xchg ebp, eax
mov byte [esp + 0xe], al
xchg ebp, eax
movzx edx, byte [esp + 0x36]
mov byte [esp + 0xf], dl
call fcn.004dc040
mov eax, dword [esp + 0x64]
inc eax
movzx ebp, byte [esp + 0x33]
shl ebp, 2
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xc0]
mov ebx, dword [esp + 0x294]
movzx esi, byte [esp + 0x26]
mov edi, dword [esp + 0xd0]
mov ecx, dword [esp + 0xf8]
mov ebx, dword [esp + 0xb4]
mov esi, dword [esp + 0x2bc]
mov edi, dword [esp + 0x2b0]
mov dword [esp + 0x64], eax
movzx eax, byte [esp + 0x26]
mov esi, dword [esp + 0x64]
cmp esi, 4
jge 0x4ec138
add esi, ebx
cmp edx, esi
jle 0x4ec138
xchg ebp, eax
mov byte [esp + 0x33], al
xchg ebp, eax
xchg ebp, eax
shr al, 6
xchg ebp, eax
imul ebp, ebp, 0x55
xchg ebp, ebx
cmp al, bl
xchg ebp, ebx
jne 0x4ec290
mov byte [esp + 0x144], al
xor eax, eax
mov byte [esp + 0x36], al
jmp 0x4ec1c5
mov byte [esp + 0x14c], al
mov eax, 0xffffffff
mov byte [esp + 0x36], al
jmp 0x4ec1c5
mov eax, ebp
call fcn.004688d0
add edx, 8
mov ebx, dword [esp + 0x2a0]
mov ebp, dword [esp + 0xd0]
mov ebx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0x2c8]
mov dword [esp + 0xb8], edx
mov edx, dword [esp + 0x104]
mov ebp, dword [esp + 0xb8]
cmp ebp, eax
jge 0x4ec322
sar ebp, 0x1f
shr ebp, 0x1d
mov edx, dword [esp + 0xb8]
add ebp, edx
sar ebp, 3
cmp ebp, ecx
jae 0x4ec422
movzx ebp, byte [ebp + edi]
mov dword [esp + 0x134], eax
xor eax, eax
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x134]
jmp 0x4ec361
mov esi, dword [esp + 0x2bc]
jmp 0x4ec2ac
mov ebp, dword [esp + 0x2c8]
mov eax, dword [esp + 0xc8]
jmp 0x4ea2ce
lea ecx, [ebx + 1]
shl ebp, 1
mov ebx, dword [esp + 0xd0]
mov ebx, dword [esp + 0x2ac]
mov esi, dword [esp + 0x2bc]
mov edi, dword [esp + 0x2b0]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0xf8]
mov ebx, dword [esp + 0x68]
cmp ebx, 8
jge 0x4ec2ac
lea esi, [ebx + edx]
cmp eax, esi
jle 0x4ec319
mov edi, dword [esp + 0x2a0]
mov ecx, dword [edi + 0x10]
cmp ecx, esi
jg 0x4ec335
mov eax, dword [edi + 0x18]
cmp eax, esi
jle 0x4ec40f
mov eax, dword [edi + 0x14]
mov edx, dword [esp + 0xd0]
cmp edx, eax
jl 0x4ec3fc
mov ebx, dword [edi + 0x1c]
cmp edx, ebx
jge 0x4ec3e5
mov ebx, dword [edi + 4]
sub edx, eax
imul edx, dword [edi + 0xc]
sub esi, ecx
lea eax, [esi + edx]
nop
cmp ebx, eax
jbe 0x4ec41b
mov edx, ebp
xchg ebp, eax
shr al, 7
xchg ebp, eax
xchg ebp, ebx
neg ebx
xchg ebp, ebx
mov ebx, dword [edi]
xchg ebp, ecx
mov byte [ebx + eax], cl
xchg ebp, ecx
mov eax, dword [esp + 0xc0]
mov ebx, dword [esp + 0x68]
mov ebp, edx
mov edx, dword [esp + 0xb8]
jmp 0x4ec335
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xb8]
mov ebx, dword [esp + 0x68]
jmp 0x4ec335
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xb8]
jmp 0x4ec335
mov eax, dword [esp + 0xc0]
jmp 0x4ec335
mov ecx, ebx
call fcn.004688d0
mov eax, ebp
call fcn.004688d0
add ebx, 8
mov ebp, dword [esp + 0x294]
mov esi, dword [esp + 0xd0]
mov edx, dword [esp + 0x104]
mov ebp, dword [esp + 0x2c8]
mov esi, dword [esp + 0x2bc]
mov dword [esp + 0xbc], ebx
mov ebx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0xbc]
mov edx, dword [esp + 0xc0]
cmp ebp, edx
jge 0x4ec4a8
sar ebp, 0x1f
shr ebp, 0x1d
mov ebx, dword [esp + 0xbc]
add ebp, ebx
sar ebp, 3
cmp ebp, ecx
jae 0x4ec598
movzx ebp, byte [ebp + edi]
mov byte [esp + 0x124], al
xor eax, eax
mov dword [esp + 0x6c], eax
movzx eax, byte [esp + 0x124]
jmp 0x4ec541
mov eax, edx
mov edx, dword [esp + 0x104]
jmp 0x4ec322
mov eax, dword [esp + 0x294]
mov dword [esp], eax
mov dword [esp + 4], esi
mov ecx, dword [esp + 0xd0]
mov dword [esp + 8], ecx
xchg ebp, eax
mov byte [esp + 0xc], al
xchg ebp, eax
xchg ebp, eax
mov byte [esp + 0xd], al
xchg ebp, eax
xchg ebp, eax
mov byte [esp + 0xe], al
xchg ebp, eax
movzx edx, byte [esp + 0x37]
mov byte [esp + 0xf], dl
call fcn.004dc040
mov eax, dword [esp + 0x6c]
inc eax
movzx ebp, byte [esp + 0x34]
shl ebp, 1
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xc0]
mov ebx, dword [esp + 0x294]
movzx esi, byte [esp + 0x27]
mov edi, dword [esp + 0xd0]
mov ecx, dword [esp + 0xf8]
mov ebx, dword [esp + 0xbc]
mov esi, dword [esp + 0x2bc]
mov edi, dword [esp + 0x2b0]
mov dword [esp + 0x6c], eax
movzx eax, byte [esp + 0x27]
mov esi, dword [esp + 0x6c]
cmp esi, 8
jge 0x4ec429
add esi, ebx
cmp edx, esi
jle 0x4ec429
xchg ebp, eax
mov byte [esp + 0x34], al
xchg ebp, eax
xchg ebp, eax
shr al, 7
xchg ebp, eax
xchg ebp, ebx
neg ebx
xchg ebp, ebx
xchg ebp, ebx
cmp al, bl
xchg ebp, ebx
jne 0x4ec583
mov byte [esp + 0x114], al
xor eax, eax
mov byte [esp + 0x37], al
jmp 0x4ec4b6
mov byte [esp + 0x11c], al
mov eax, 0xffffffff
mov byte [esp + 0x37], al
jmp 0x4ec4b6
mov eax, ebp
call fcn.004688d0
movzx esi, byte [ebx + ebp]
xchg esi, eax
shr al, 1
xchg esi, eax
add edx, esi
mov byte [edi + ebx], dl
lea edx, [ebx + 1]
mov ebx, dword [esp + 0x2ac]
mov esi, dword [esp + 0x2bc]
mov dword [esp + 0xec], edx
mov edx, dword [esp + 0x104]
mov ebx, dword [esp + 0xec]
cmp ebx, eax
jge 0x4ec5e6
cmp ebx, ecx
jae 0x4ec669
movzx edx, byte [ebx + edi]
jb 0x4ec59f
jmp 0x4ec662
mov dword [esp + 0x288], ebp
mov ebx, eax
jmp 0x4ec61d
movzx ebp, byte [esi + ebp]
add eax, ebp
mov ebp, eax
shr eax, 0x1f
add eax, ebp
sar eax, 1
add eax, edx
mov byte [edi + esi], al
lea eax, [esi + 1]
mov ebp, dword [esp + 0x288]
mov edx, dword [esp + 0x104]
mov esi, dword [esp + 0x2bc]
cmp eax, ecx
jge 0x4ec645
jae 0x4ec65d
mov dword [esp + 0xe8], eax
sub eax, ebx
mov esi, dword [esp + 0xe8]
movzx edx, byte [esi + edi]
cmp eax, ecx
jae 0x4ec658
movzx eax, byte [eax + edi]
cmp esi, ecx
jb 0x4ec5f1
jmp 0x4ec651
mov ebx, dword [esp + 0x2ac]
jmp 0x4ea441
mov eax, esi
call fcn.004688d0
call fcn.004688d0
call fcn.004688d0
mov eax, ebx
call fcn.004688d0
mov eax, ebx
call fcn.004688d0
movzx ebx, byte [eax + edi]
add edx, ebx
mov byte [edi + eax], dl
inc eax
mov edx, dword [esp + 0x104]
mov ebx, dword [esp + 0x2ac]
cmp eax, ecx
jge 0x4ea441
movzx edx, byte [eax + ebp]
jb 0x4ec670
call fcn.004688d0
movzx eax, byte [eax + edi]
add eax, edx
mov byte [edi + ebx], al
lea eax, [ebx + 1]
mov edx, dword [esp + 0x104]
mov ebx, dword [esp + 0x2ac]
cmp eax, ecx
jge 0x4ea441
jae 0x4ec6dc
mov dword [esp + 0xf0], eax
sub eax, ebp
mov ebx, dword [esp + 0xf0]
movzx edx, byte [ebx + edi]
cmp eax, ecx
jb 0x4ec69b
call fcn.004688d0
call fcn.004688d0
mov eax, 1
xor ecx, ecx
call fcn.00468930
mov eax, 1
xor ecx, ecx
call fcn.00468930
call fcn.00438710
call fcn.00438710
call fcn.004688d0
nop
call fcn.00467460
jmp fcn.004e9750