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

Disassembly:
sub esp, 0x94
mov ecx, dword [0x727a48]
mov al, byte [0x7381c6]
push ebx
push ebp
lea ebx, [ecx + 1]
push esi
test al, 1
push edi
mov dword [esp + 0x94], ebx
mov ebp, 0x100
je 0x427179
mov al, byte [0x73693f]
test al, al
je 0x427172
xor eax, eax
mov edi, 0x738348
mov dword [esp + 0x64], eax
mov ebp, eax
mov ecx, eax
xor esi, esi
and ebp, 4
and ecx, 2
and eax, 1
mov dword [esp + 0x28], ecx
mov dword [esp + 0x7c], eax
mov eax, esi
mov ecx, esi
shr eax, 3
and eax, 0x18
mov edx, esi
or eax, ebp
and edx, 7
shr ecx, 1
push eax
mov eax, dword [esp + 0x2c]
and ecx, 0x1c
or ecx, eax
mov eax, dword [esp + 0x80]
shl edx, 1
or edx, eax
push ecx
shl edx, 1
push edx
call dword [0x7381d0]
add esp, 0xc
mov word [edi], ax
inc esi
add edi, 2
cmp esi, 0x100
jb 0x42710b
mov eax, dword [esp + 0x64]
inc eax
cmp edi, 0x739348
mov dword [esp + 0x64], eax
jb 0x4270f4
mov ecx, dword [0x727a48]
mov byte [0x73693f], 0
mov ebp, 0x100
mov esi, 0x738348
jmp 0x42717e
mov esi, 0x73757c
mov eax, dword [0x737bac]
mov edx, dword [esp + 0xac]
mov dword [0x737b8c], esi
mov dword [esp + 0x74], 0
mov eax, dword [eax + edx*4]
mov dword [esp + 0x80], ebp
test eax, eax
mov dword [esp + 0x88], eax
jne 0x4271b8
mov dword [esp + 0x88], 1
mov eax, dword [0x737b58]
mov edx, dword [0x737ba4]
imul eax, edx
mov edi, dword [esp + 0xa8]
mov byte [esp + 0x46], 0
add edi, eax
mov eax, dword [0x737b78]
imul eax, edx
mov dword [esp + 0xa8], edi
mov edi, dword [0x737b88]
add eax, edi
mov edi, dword [0x737ba8]
mov dword [esp + 0x64], eax
lea eax, [edx + edx*2]
cmp word [eax*4 + 0x735c6a], 0
lea eax, [eax*4 + 0x735c68]
mov dword [esp + 0x4c], eax
jne 0x427251
cmp word [eax + 4], 0
jne 0x427251
cmp word [eax], bp
jne 0x427251
cmp word [eax + 6], bp
jne 0x427251
lea eax, [edi + edi*2]
shl eax, 2
cmp word [eax + 0x735c6a], 0
jne 0x427251
cmp word [eax + 0x735c6c], 0
jne 0x427251
cmp word [eax + 0x735c68], bp
jne 0x427251
cmp word [eax + 0x735c6e], bp
jne 0x427251
mov byte [esp + 0x46], 1
cmp edx, edi
mov dword [esp + 0x68], edx
ja 0x428609
mov eax, dword [esp + 0x68]
xor edx, edx
shl eax, 4
mov dx, word [eax + 0x734cba]
shl edx, 0x13
sar edx, 0x13
mov dword [esp + 0x78], edx
xor edx, edx
mov dx, word [eax + 0x734cb8]
mov eax, edx
mov edx, dword [esp + 0x4c]
shl eax, 0x13
movsx edi, word [edx + 8]
shl edi, 0x13
sar edi, 0x13
mov dword [esp + 0x70], edi
movsx edi, word [edx + 0xa]
shl edi, 0x13
sar eax, 0x13
sar edi, 0x13
cmp byte [0x769644], 0
mov dword [esp + 0x7c], edi
je 0x4272c6
mov edx, dword [esp + 0x68]
mov ebp, 0x105
sub ebp, edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x60], ebp
jmp 0x4272ce
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x60], ebp
cmp byte [0x769645], 0
jne 0x4272f1
sub eax, edi
mov ebp, 0x3ff
cdq
idiv ebp
mov ebp, dword [esp + 0x60]
add ebp, edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x60], ebp
jmp 0x4272f9
sub eax, edi
add ebp, eax
mov dword [esp + 0x60], ebp
mov al, byte [esp + 0x46]
mov byte [esp + 0x47], 0
test al, al
je 0x42733e
cmp word [edx + 2], 0
jne 0x42733e
cmp word [edx + 4], 0
jne 0x42733e
cmp word [edx], 0x100
jne 0x42733e
cmp word [edx + 6], 0x100
jne 0x42733e
mov eax, dword [esp + 0x70]
add edi, ebp
shl eax, 8
shl edi, 8
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], edi
mov byte [esp + 0x47], 1
jmp 0x427366
movsx eax, word [edx + 2]
mov edx, dword [esp + 0x70]
imul eax, ebp
shl edx, 8
add eax, edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x4c]
shl edi, 8
movsx eax, word [eax + 6]
imul eax, ebp
add eax, edi
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x90], 0
test eax, eax
jbe 0x4285c1
mov edi, dword [0x737bac]
mov ebp, dword [esp + 0xac]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x4c]
cmp dword [edi + ebp*4], 0
je 0x4273d1
mov edx, dword [esp + 0x90]
lea eax, [edx + edx*2 + 3]
lea edx, [edx + edx*2 + 0x15]
lea eax, [ebp + eax*2]
lea edx, [ebp + edx*2]
mov eax, dword [edi + eax*4]
mov edi, dword [edi + edx*4]
cmp edi, eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x80], edi
jbe 0x4285a3
mov edx, eax
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0xa8]
lea edi, [edi + edx*2]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x64]
add edi, edx
cmp byte [0x769643], 0
mov dword [esp + 0x28], edi
je 0x427424
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x54], 0xffffffff
dec ebp
dec edx
mov dword [esp + 0x50], edx
mov dword [esp + 0x14], ebp
movsx edx, word [eax]
movsx eax, word [eax + 4]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
neg edx
mov dword [esp + 0x5c], edx
neg eax
jmp 0x427450
mov ebp, edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x50], edx
mov dword [esp + 0x14], ebp
movsx edx, word [eax]
movsx eax, word [eax + 4]
mov dword [esp + 0x54], 1
mov dword [esp + 0x18], edx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], eax
mov al, byte [0x769645]
test al, al
jne 0x427477
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x70]
sub eax, edx
mov ebp, 0x3ff
cdq
idiv ebp
mov ebp, dword [esp + 0x14]
add edx, ebp
jmp 0x427485
mov eax, dword [esp + 0x70]
mov edx, ebp
sub edx, eax
mov eax, dword [esp + 0x78]
add edx, eax
cmp byte [esp + 0x47], 0
mov eax, dword [esp + 0x18]
je 0x4274da
mov al, byte [0x769645]
shl edx, 8
test al, al
mov dword [esp + 0x10], edx
jne 0x42793f
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1c], ebp
sar eax, 8
mov ebp, dword [esp + 0x3c]
and eax, 0x3ff
mov edx, eax
and eax, 7
and edx, 0xfffffff8
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
shl edx, 5
add ebp, eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x14], ebp
jmp 0x4277e5
imul eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
imul eax, edx
mov dl, byte [0x769645]
mov dword [esp + 0x2c], eax
test dl, dl
jne 0x428107
mov eax, dword [esp + 0x5c]
cmp eax, 0x1cc
jge 0x427ca3
cmp eax, 0xfffffe34
jle 0x427ca3
mov edx, dword [esp + 0x34]
cmp edx, 0x1cc
jge 0x427ca7
cmp edx, 0xfffffe34
jle 0x427ca7
mov eax, dword [esp + 0x50]
mov dword [esp + 0x1c], ebp
cmp ebp, eax
je 0x4285a3
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x3c]
add edx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], edx
add ebp, eax
mov dword [esp + 0x18], ebp
shr ebp, 8
shr edx, 8
mov dword [esp + 0x28], edx
mov eax, ebp
and edx, 0x3ff
and eax, 0x3ff
mov dword [esp + 0x14], edx
mov edx, eax
shr edx, 2
and edx, 0xfffffffe
and eax, 7
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x14]
and edx, 0xfffffff8
mov dword [esp + 0x24], eax
shl edx, 5
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x14]
and edx, 7
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x10]
add edx, eax
xor eax, eax
mov al, byte [edx + ecx]
mov edx, dword [esp + 0x48]
lea eax, [edx + eax*8]
mov edx, dword [esp + 0x24]
lea eax, [edx + eax*8]
xor edx, edx
mov dl, byte [ebx + eax*2]
mov eax, edx
mov edx, dword [0x737bb4]
mov dword [esp + 0x14], eax
shr eax, 7
shr edx, 7
and eax, edx
mov al, byte [eax + 0x726f18]
mov byte [0x737b94], al
mov dl, byte [edi]
cmp al, dl
jbe 0x427c5a
mov eax, dword [esp + 0x14]
test eax, eax
je 0x427c5a
mov edx, dword [esp + 0x54]
lea eax, [edx + ebp]
mov ebp, dword [esp + 0x28]
add edx, ebp
mov ebp, dword [0x737bb0]
and edx, 0x3ff
and eax, 0x3ff
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x14]
and edx, ebp
xor ebp, ebp
mov bp, word [esi + edx*2]
mov edx, eax
shr edx, 2
and eax, 7
and edx, 0xfffffffe
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], edx
add edx, eax
xor eax, eax
mov al, byte [edx + ecx]
mov edx, dword [esp + 0x48]
lea eax, [edx + eax*8]
mov edx, dword [esp + 0x14]
lea eax, [edx + eax*8]
xor edx, edx
mov dl, byte [ebx + eax*2]
mov eax, dword [0x737bb0]
and edx, eax
xor eax, eax
mov ax, word [esi + edx*2]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov eax, edx
and al, 0xf8
and edx, 7
shl eax, 5
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x28], eax
add eax, edx
xor edx, edx
mov dl, byte [eax + ecx]
mov eax, dword [esp + 0x48]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x14]
lea edx, [eax + edx*8]
xor eax, eax
mov al, byte [ebx + edx*2]
mov edx, eax
mov eax, dword [0x737bb0]
and edx, eax
xor eax, eax
mov ax, word [esi + edx*2]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
add eax, edx
xor edx, edx
mov dl, byte [eax + ecx]
mov eax, dword [esp + 0x48]
lea ecx, [eax + edx*8]
mov edx, dword [esp + 0x24]
lea eax, [edx + ecx*8]
mov edx, dword [esp + 0x2c]
xor ecx, ecx
mov cl, byte [ebx + eax*2]
mov ebx, dword [0x737bb0]
and ecx, ebx
xor eax, eax
shr edx, 3
mov ax, word [esi + ecx*2]
mov ecx, dword [esp + 0x18]
shr ecx, 3
and edx, 0x1f
and ecx, 0x1f
mov esi, edx
mov dword [esp + 0x40], eax
imul esi, ecx
shr esi, 5
mov ebx, dword [0x4ac2a0]
mov eax, ebp
and ebp, dword [0x7c5f38]
and eax, ebx
shl eax, 0x10
or eax, ebp
mov ebp, esi
sub ebp, edx
sub edx, esi
sub ebp, ecx
sub ecx, esi
add ebp, 0x20
imul eax, ebp
mov ebp, dword [esp + 0x10]
and ebp, ebx
mov ebx, dword [esp + 0x10]
and ebx, dword [0x7c5f38]
shl ebp, 0x10
or ebp, ebx
mov ebx, dword [0x4ac2a0]
imul ebp, ecx
mov ecx, dword [esp + 0x40]
add eax, ebp
mov ebp, ecx
and ebp, ebx
mov ebx, dword [0x7c5f38]
shl ebp, 0x10
and ecx, ebx
or ebp, ecx
mov ecx, dword [esp + 0x14]
imul ebp, edx
mov edx, dword [0x4ac2a0]
add eax, ebp
mov ebp, ecx
and ecx, ebx
and ebp, edx
shl ebp, 0x10
or ebp, ecx
imul ebp, esi
add eax, ebp
mov esi, dword [0x7c5f34]
shr eax, 5
mov ecx, eax
and ebx, eax
shr ecx, 0x10
and ecx, edx
mov edx, dword [0x737b90]
or ecx, ebx
mov al, byte [edx + edi]
test al, al
je 0x427c2f
cmp al, 1
je 0x427bf8
mov eax, dword [0x737b5c]
mov ebx, dword [esp + 0x20]
xor edx, edx
and ecx, 0xffff
mov dx, word [ebx + eax*2]
mov ebx, dword [0x7273ec]
mov eax, ecx
mov ebp, edx
and eax, ebx
and ebp, ebx
mov ebx, dword [0x4ac290]
add eax, ebp
and ecx, edx
shr eax, 1
and ecx, ebx
add eax, ecx
or eax, esi
jmp 0x427c37
mov edx, dword [esp + 0x28]
sar ebp, 8
and ebp, 0x3ff
mov eax, ebp
and ebp, 7
sar eax, 2
and al, 0xfe
add eax, edx
xor edx, edx
mov dl, byte [eax + ecx]
mov eax, dword [esp + 0x24]
lea edx, [eax + edx*8]
lea eax, [ebp + edx*8]
xor edx, edx
mov dl, byte [ebx + eax*2]
mov ebp, edx
mov edx, dword [0x737bb4]
mov eax, ebp
shr eax, 7
shr edx, 7
and eax, edx
mov al, byte [eax + 0x726f18]
mov byte [0x737b94], al
mov dl, byte [edi]
cmp al, dl
jbe 0x427906
test ebp, ebp
je 0x427906
mov eax, dword [0x737b90]
mov edx, dword [0x737bb0]
and ebp, edx
mov edx, dword [0x7c5f34]
mov al, byte [eax + edi]
mov si, word [esi + ebp*2]
test al, al
je 0x4278e1
cmp al, 1
je 0x4278a4
mov ecx, dword [0x737b5c]
mov eax, dword [esp + 0x20]
xor ebp, ebp
mov bp, word [eax + ecx*2]
mov ecx, esi
mov esi, dword [0x7273ec]
and ecx, 0xffff
mov eax, ecx
mov dword [esp + 0x10], ebp
and eax, esi
and ebp, esi
mov esi, dword [esp + 0x10]
add eax, ebp
mov ebp, dword [0x4ac290]
and ecx, esi
shr eax, 1
and ecx, ebp
add eax, ecx
or eax, edx
jmp 0x4278e9
mov ecx, dword [0x7273ec]
mov ebp, dword [0x737b98]
mov eax, esi
and ebp, ecx
and eax, 0xffff
mov esi, eax
and esi, ecx
mov ecx, dword [0x737b98]
add esi, ebp
mov ebp, dword [0x4ac290]
and eax, ecx
mov ecx, dword [0x737b60]
shr esi, 1
and eax, ebp
add esi, eax
xor eax, eax
mov ax, word [ecx + esi*2]
jmp 0x4278e9
and esi, 0xffff
mov eax, esi
or edx, eax
mov eax, dword [esp + 0x20]
mov word [eax], dx
mov cl, byte [0x737b94]
mov byte [edi], cl
mov ecx, dword [0x727a48]
mov esi, dword [0x737b8c]
mov edx, dword [esp + 0x20]
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x5c]
add edx, 2
add ebp, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x54]
add eax, edx
mov edx, dword [esp + 0x50]
inc edi
cmp eax, edx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x1c], eax
jne 0x4277e1
jmp 0x4285a3
mov eax, dword [esp + 0x38]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x3c]
sar eax, 8
add edx, ebp
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], edx
jmp 0x42795e
mov eax, dword [esp + 0x28]
mov ebp, edx
mov dl, byte [0x73833f]
sar ebp, 8
test dl, dl
mov dword [esp + 0x10], ebp
mov dword [esp + 0x34], eax
je 0x427991
cmp byte [0x769645], 2
jne 0x427991
and ebp, 0x7ff
and eax, 0x7ff
mov dword [esp + 0x10], ebp
mov dword [esp + 0x34], eax
mov edx, eax
or edx, ebp
test edx, 0xfffffc00
jne 0x427a6c
and al, 0xf8
mov edx, ecx
shl eax, 5
sar ebp, 2
and ebp, 0xfffffffe
add edx, eax
xor eax, eax
mov al, byte [edx + ebp]
mov edx, eax
mov eax, dword [esp + 0x34]
and eax, 7
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x10]
and eax, 7
lea eax, [eax + edx*8]
xor edx, edx
mov dl, byte [ebx + eax*2]
mov ebp, edx
mov edx, dword [0x737bb4]
mov eax, ebp
shr eax, 7
shr edx, 7
and eax, edx
mov al, byte [eax + 0x726f18]
mov byte [0x737b94], al
mov dl, byte [edi]
cmp al, dl
jbe 0x427bbf
test ebp, ebp
je 0x427bbf
mov eax, dword [0x737b90]
mov edx, dword [0x737bb0]
and ebp, edx
mov edx, dword [0x7c5f34]
mov al, byte [eax + edi]
mov si, word [esi + ebp*2]
test al, al
je 0x427b9a
cmp al, 1
je 0x427b5d
mov ecx, dword [0x737b5c]
mov eax, dword [esp + 0x20]
xor ebp, ebp
mov bp, word [eax + ecx*2]
mov ecx, esi
mov esi, dword [0x7273ec]
and ecx, 0xffff
mov eax, ecx
mov dword [esp + 0x10], ebp
and eax, esi
and ebp, esi
mov esi, dword [esp + 0x10]
add eax, ebp
mov ebp, dword [0x4ac290]
and ecx, esi
shr eax, 1
and ecx, ebp
add eax, ecx
or eax, edx
jmp 0x427ba2
cmp byte [0x769645], 3
jne 0x427bbf
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x7c]
add eax, edx
mov edx, dword [esp + 0x60]
and eax, 7
add edx, ebp
mov dword [esp + 0x10], eax
and edx, 7
mov ebp, ecx
mov dword [esp + 0x34], edx
and edx, 0xfffffff8
shl edx, 5
sar eax, 2
and al, 0xfe
add ebp, edx
xor edx, edx
mov dl, byte [eax + ebp]
mov eax, dword [esp + 0x34]
and eax, 7
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x10]
and eax, 7
lea eax, [eax + edx*8]
xor edx, edx
mov dl, byte [ebx + eax*2]
mov ebp, edx
mov edx, dword [0x737bb4]
mov eax, ebp
shr eax, 7
shr edx, 7
and eax, edx
mov al, byte [eax + 0x726f18]
mov byte [0x737b94], al
mov dl, byte [edi]
cmp al, dl
jbe 0x427bbf
test ebp, ebp
je 0x427bbf
mov eax, dword [0x737b90]
mov edx, dword [0x737bb0]
and ebp, edx
mov edx, dword [0x7c5f34]
mov al, byte [eax + edi]
mov si, word [esi + ebp*2]
test al, al
je 0x427b9a
cmp al, 1
je 0x427b5d
mov ecx, dword [0x737b5c]
mov eax, dword [esp + 0x20]
xor ebp, ebp
mov bp, word [eax + ecx*2]
mov ecx, esi
mov esi, dword [0x7273ec]
and ecx, 0xffff
mov eax, ecx
mov dword [esp + 0x10], ebp
and eax, esi
and ebp, esi
mov esi, dword [esp + 0x10]
add eax, ebp
mov ebp, dword [0x4ac290]
and ecx, esi
shr eax, 1
and ecx, ebp
add eax, ecx
or eax, edx
jmp 0x427ba2
mov ecx, dword [0x7273ec]
mov ebp, dword [0x737b98]
mov eax, esi
and ebp, ecx
and eax, 0xffff
mov esi, eax
and esi, ecx
mov ecx, dword [0x737b98]
add esi, ebp
mov ebp, dword [0x4ac290]
and eax, ecx
mov ecx, dword [0x737b60]
shr esi, 1
and eax, ebp
add esi, eax
xor eax, eax
mov ax, word [ecx + esi*2]
jmp 0x427ba2
and esi, 0xffff
mov eax, esi
or edx, eax
mov eax, dword [esp + 0x20]
mov word [eax], dx
mov cl, byte [0x737b94]
mov byte [edi], cl
mov ecx, dword [0x727a48]
mov esi, dword [0x737b8c]
mov ebp, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x5c]
add ebp, 2
add edx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x54]
add eax, ebp
mov ebp, dword [esp + 0x50]
inc edi
cmp eax, ebp
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
jne 0x42795a
jmp 0x4285a3
mov edx, dword [0x737b98]
mov eax, dword [0x7273ec]
and ecx, 0xffff
mov ebp, edx
mov ebx, ecx
and ebp, eax
and ebx, eax
and ecx, edx
mov edx, dword [0x4ac290]
add ebx, ebp
shr ebx, 1
and ecx, edx
add ebx, ecx
mov ecx, dword [0x737b60]
xor eax, eax
mov ax, word [ecx + ebx*2]
jmp 0x427c37
and ecx, 0xffff
mov eax, ecx
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x94]
or eax, esi
mov word [edx], ax
mov al, byte [0x737b94]
mov byte [edi], al
mov ecx, dword [0x727a48]
mov esi, dword [0x737b8c]
mov edx, dword [esp + 0x54]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
add ebp, edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x18]
add ebp, edx
mov edx, dword [esp + 0x2c]
add edx, eax
mov eax, dword [esp + 0x20]
add eax, 2
inc edi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x50]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x2c], edx
jne 0x42755c
jmp 0x4285a3
mov edx, dword [esp + 0x34]
sar eax, 1
mov dword [esp + 0x1c], eax
mov eax, edx
sar eax, 1
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x14], ebp
mov dx, word [eax + 2]
mov ax, word [eax + 6]
sar dx, 1
sar ax, 1
movsx edx, dx
movsx eax, ax
mov dword [esp + 0x40], edx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
shr edx, 1
sub eax, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x38]
shr edx, 1
sub eax, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x1c]
shr eax, 1
sub edx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x18]
shr edx, 1
sub eax, edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c]
add eax, edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x40]
add edx, eax
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x1c]
add eax, edx
mov edx, dword [esp + 0x3c]
add eax, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
add eax, edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
add edx, eax
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x18]
add edx, eax
mov eax, dword [esp + 0x38]
add edx, eax
mov eax, dword [esp + 0x50]
cmp ebp, eax
je 0x4285a3
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x1c]
add ebp, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x30]
add eax, ebp
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x3c]
sub eax, ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x38]
sub eax, ebp
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x40]
sub eax, ebp
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x28]
sub eax, ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x24]
sub eax, ebp
sub edx, ebp
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0xa0]
add eax, ebp
mov ebp, dword [esp + 0x9c]
sar eax, 8
add edx, ebp
and eax, 0x3ff
sar edx, 8
mov dword [esp + 0x28], eax
and edx, 0x3ff
shr eax, 2
mov dword [esp + 0x40], edx
and al, 0xfe
and edx, 0xfffffff8
mov ebp, ecx
shl edx, 5
add ebp, eax
xor eax, eax
mov al, byte [edx + ebp]
mov edx, eax
mov eax, dword [esp + 0x40]
and eax, 7
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x28]
and eax, 7
lea eax, [eax + edx*8]
xor edx, edx
mov dl, byte [ebx + eax*2]
mov ebp, edx
mov edx, dword [0x737bb4]
mov eax, ebp
mov dword [esp + 0x58], ebp
shr eax, 7
shr edx, 7
and eax, edx
mov al, byte [eax + 0x726f18]
mov byte [0x737b94], al
mov dl, byte [edi]
cmp al, dl
jbe 0x4280be
test ebp, ebp
je 0x4280be
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x18]
mov eax, edx
shr eax, 8
and eax, 0x3ff
mov dword [esp + 0x1c], eax
mov eax, ebp
shr eax, 8
and eax, 0x3ff
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x98]
add eax, edx
shr eax, 8
and eax, 0x3ff
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x84]
add eax, ebp
shr eax, 8
and eax, 0x3ff
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x8c]
add eax, edx
mov edx, dword [esp + 0x6c]
shr eax, 8
add edx, ebp
and eax, 0x3ff
shr edx, 8
mov dword [esp + 0x28], eax
and edx, 0x3ff
shr eax, 2
mov dword [esp + 0x40], edx
and al, 0xfe
and edx, 0xfffffff8
mov ebp, ecx
shl edx, 5
add ebp, eax
xor eax, eax
mov al, byte [edx + ebp]
mov ebp, ecx
mov edx, eax
mov eax, dword [esp + 0x40]
and eax, 7
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x28]
and eax, 7
lea eax, [eax + edx*8]
xor edx, edx
mov dl, byte [ebx + eax*2]
mov eax, dword [0x737bb0]
and edx, eax
xor eax, eax
mov ax, word [esi + edx*2]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
shr eax, 2
and al, 0xfe
and edx, 0xfffffff8
shl edx, 5
add ebp, eax
xor eax, eax
mov al, byte [edx + ebp]
mov ebp, dword [0x737bb0]
mov edx, eax
mov eax, dword [esp + 0x24]
and eax, 7
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x30]
and eax, 7
lea eax, [eax + edx*8]
xor edx, edx
mov dl, byte [ebx + eax*2]
mov eax, dword [esp + 0x1c]
and edx, ebp
xor ebp, ebp
shr eax, 2
mov bp, word [esi + edx*2]
mov edx, dword [esp + 0x48]
and edx, 0xfffffff8
and al, 0xfe
shl edx, 5
add ecx, eax
xor eax, eax
mov al, byte [edx + ecx]
mov ecx, eax
mov eax, dword [esp + 0x48]
and eax, 7
lea edx, [eax + ecx*8]
mov eax, dword [esp + 0x1c]
and eax, 7
xor ecx, ecx
lea eax, [eax + edx*8]
mov cl, byte [ebx + eax*2]
mov eax, dword [0x737bb0]
mov edx, ecx
xor ecx, ecx
and edx, eax
mov cx, word [esi + edx*2]
mov edx, dword [esp + 0x58]
and edx, eax
xor eax, eax
mov ax, word [esi + edx*2]
mov edx, dword [0x7c5f3c]
mov esi, ecx
mov dword [esp + 0x58], eax
and eax, edx
and esi, edx
add eax, esi
mov esi, ebp
and esi, edx
add eax, esi
mov esi, dword [esp + 0x10]
and esi, edx
add eax, esi
mov esi, dword [0x7c5f40]
shr eax, 2
and eax, edx
mov edx, dword [esp + 0x58]
shr edx, 2
and edx, esi
shr ecx, 2
add eax, edx
and ecx, esi
add eax, ecx
mov ecx, dword [esp + 0x10]
shr ebp, 2
and ebp, esi
shr ecx, 2
add eax, ebp
and ecx, esi
mov esi, dword [0x7c5f34]
add eax, ecx
mov ecx, dword [0x737b90]
mov cl, byte [ecx + edi]
test cl, cl
je 0x42809d
cmp cl, 1
je 0x428062
mov ecx, dword [0x737b5c]
mov ebp, dword [esp + 0x20]
xor edx, edx
mov dx, word [ebp + ecx*2]
mov ebp, dword [0x7273ec]
mov ecx, eax
mov eax, edx
and ecx, 0xffff
and eax, ebp
mov ebp, ecx
and ecx, edx
and ebp, dword [0x7273ec]
add eax, ebp
mov ebp, dword [0x4ac290]
shr eax, 1
and ecx, ebp
add eax, ecx
or eax, esi
jmp 0x4280a2
mov ecx, dword [0x737b98]
mov ebp, dword [0x7273ec]
mov edx, ecx
and eax, 0xffff
and edx, ebp
mov ebp, eax
and ebp, dword [0x7273ec]
and eax, ecx
mov ecx, dword [0x737b60]
add edx, ebp
mov ebp, dword [0x4ac290]
shr edx, 1
and eax, ebp
add edx, eax
xor eax, eax
mov ax, word [ecx + edx*2]
jmp 0x4280a2
and eax, 0xffff
mov edx, dword [esp + 0x20]
or eax, esi
mov word [edx], ax
mov al, byte [0x737b94]
mov byte [edi], al
mov ecx, dword [0x727a48]
mov esi, dword [0x737b8c]
mov edx, dword [esp + 0x54]
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
add ebp, edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x34]
add eax, edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
add edx, ebp
mov ebp, dword [esp + 0x20]
add ebp, 2
inc edi
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x14]
cmp ebp, dword [esp + 0x50]
mov dword [esp + 0x18], edx
jne 0x427de4
jmp 0x4285a3
mov edx, dword [esp + 0x50]
mov dword [esp + 0x2c], ebp
cmp ebp, edx
je 0x4285a3
mov edx, dword [esp + 0x38]
lea ebp, [eax + edx]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x1c], ebp
add eax, edx
mov dword [esp + 0x14], eax
mov dl, byte [0x73833f]
shr eax, 8
shr ebp, 8
test dl, dl
mov dword [esp + 0x58], eax
mov dword [esp + 0x24], ebp
mov dword [esp + 0x18], eax
je 0x428164
cmp byte [0x769645], 2
jne 0x428164
and eax, 0x7ff
and ebp, 0x7ff
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
mov eax, ebp
or eax, edx
test eax, 0xfffffc00
jne 0x428433
mov eax, edx
mov edx, ebp
and edx, 0xfffffff8
and ebp, 7
shr eax, 2
shl edx, 5
and al, 0xfe
mov dword [esp + 0x6c], edx
mov dword [esp + 0x8c], eax
add edx, eax
xor eax, eax
mov dword [esp + 0x30], ebp
mov al, byte [edx + ecx]
mov edx, dword [esp + 0x30]
mov ebp, dword [esp + 0x18]
and ebp, 7
lea eax, [edx + eax*8]
mov dword [esp + 0x84], ebp
lea edx, [ebp + eax*8]
xor eax, eax
mov al, byte [ebx + edx*2]
mov ebp, eax
mov eax, dword [0x737bb4]
mov edx, ebp
shr edx, 7
shr eax, 7
and edx, eax
mov al, byte [edx + 0x726f18]
mov byte [0x737b94], al
mov dl, byte [edi]
cmp al, dl
jbe 0x42855b
test ebp, ebp
je 0x42855b
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x24]
add edx, eax
add eax, edi
and edx, 0x3ff
and eax, 0x3ff
xor edi, edi
mov dword [esp + 0x24], eax
mov eax, dword [0x737bb0]
and ebp, eax
mov eax, edx
and edx, 7
mov di, word [esi + ebp*2]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x6c]
shr eax, 2
and al, 0xfe
lea ebp, [eax + edx]
xor edx, edx
mov dl, byte [ecx + ebp]
mov ebp, dword [esp + 0x30]
lea edx, [ebp + edx*8]
mov ebp, dword [esp + 0x48]
lea ebp, [ebp + edx*8]
xor edx, edx
mov dl, byte [ebx + ebp*2]
mov ebp, dword [0x737bb0]
and edx, ebp
xor ebp, ebp
mov bp, word [esi + edx*2]
mov edx, dword [esp + 0x24]
and edx, 0xfffffff8
shl edx, 5
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x24]
and edx, 7
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x30]
add edx, eax
xor eax, eax
mov al, byte [edx + ecx]
mov edx, dword [esp + 0x24]
lea eax, [edx + eax*8]
mov edx, dword [esp + 0x48]
lea eax, [edx + eax*8]
xor edx, edx
mov dl, byte [ebx + eax*2]
mov eax, dword [0x737bb0]
and edx, eax
xor eax, eax
mov ax, word [esi + edx*2]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x30]
add eax, edx
xor edx, edx
mov dl, byte [eax + ecx]
mov eax, dword [esp + 0x24]
lea ecx, [eax + edx*8]
mov edx, dword [esp + 0x84]
lea eax, [edx + ecx*8]
mov edx, dword [esp + 0x1c]
xor ecx, ecx
mov cl, byte [ebx + eax*2]
mov ebx, dword [0x737bb0]
and ecx, ebx
xor eax, eax
shr edx, 3
mov ax, word [esi + ecx*2]
mov ecx, dword [esp + 0x14]
shr ecx, 3
and edx, 0x1f
and ecx, 0x1f
mov esi, edx
mov ebx, dword [0x4ac2a0]
imul esi, ecx
mov dword [esp + 0x24], eax
mov eax, edi
shr esi, 5
and eax, ebx
and edi, dword [0x7c5f38]
shl eax, 0x10
or eax, edi
mov edi, esi
sub edi, edx
sub edx, esi
sub edi, ecx
sub ecx, esi
add edi, 0x20
imul eax, edi
mov edi, dword [esp + 0x24]
and edi, ebx
mov ebx, dword [0x7c5f38]
shl edi, 0x10
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x24]
and edi, ebx
mov ebx, dword [esp + 0x58]
or ebx, edi
mov edi, dword [0x4ac2a0]
imul ebx, edx
mov edx, dword [0x7c5f38]
add eax, ebx
mov ebx, ebp
and ebp, edx
and ebx, edi
shl ebx, 0x10
or ebx, ebp
imul ebx, ecx
mov ecx, dword [esp + 0x6c]
add eax, ebx
mov ebx, ecx
and ecx, edx
and ebx, edi
shl ebx, 0x10
or ebx, ecx
imul ebx, esi
add eax, ebx
shr eax, 5
mov ecx, eax
and edx, eax
shr ecx, 0x10
and ecx, edi
mov edi, dword [esp + 0x28]
or ecx, edx
mov edx, dword [0x737b90]
mov al, byte [edx + edi]
mov edx, dword [0x7c5f34]
test al, al
je 0x428402
cmp al, 1
je 0x4283cb
mov eax, dword [0x737b5c]
mov ebx, dword [esp + 0x20]
xor esi, esi
and ecx, 0xffff
mov si, word [ebx + eax*2]
mov ebx, dword [0x7273ec]
mov eax, esi
mov ebp, ecx
and eax, ebx
and ebp, ebx
mov ebx, dword [0x4ac290]
add eax, ebp
and ecx, esi
shr eax, 1
and ecx, ebx
add eax, ecx
or eax, edx
jmp 0x42840a
mov eax, dword [0x737b98]
mov esi, dword [0x7273ec]
and ecx, 0xffff
mov ebx, eax
mov ebp, ecx
and ebx, esi
and ebp, esi
mov esi, dword [0x4ac290]
add ebx, ebp
and ecx, eax
shr ebx, 1
and ecx, esi
add ebx, ecx
mov ecx, dword [0x737b60]
xor eax, eax
mov ax, word [ecx + ebx*2]
jmp 0x42840a
and ecx, 0xffff
mov eax, ecx
or edx, eax
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x94]
mov word [eax], dx
mov cl, byte [0x737b94]
mov byte [edi], cl
mov ecx, dword [0x727a48]
mov esi, dword [0x737b8c]
jmp 0x42855b
cmp byte [0x769645], 3
jne 0x42855b
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x60]
mov ebp, dword [esp + 0x2c]
add eax, edx
mov edx, dword [esp + 0x78]
and eax, 7
add ebp, edx
xor edx, edx
and ebp, 7
lea eax, [ebp + eax*8]
mov dl, byte [ebx + eax*2]
mov ebp, edx
mov edx, dword [0x737bb4]
mov eax, ebp
shr eax, 7
shr edx, 7
and eax, edx
mov al, byte [eax + 0x726f18]
mov byte [0x737b94], al
mov dl, byte [edi]
cmp al, dl
jbe 0x42855b
test ebp, ebp
je 0x42855b
mov edx, dword [0x737bb0]
mov eax, dword [0x737b90]
and ebp, edx
mov al, byte [eax + edi]
mov si, word [esi + ebp*2]
mov ebp, dword [0x7c5f34]
test al, al
je 0x428537
cmp al, 1
je 0x4284fa
mov ecx, dword [0x737b5c]
mov eax, dword [esp + 0x20]
xor edx, edx
mov dx, word [eax + ecx*2]
mov ecx, esi
and ecx, 0xffff
mov dword [esp + 0x10], edx
mov eax, edx
mov edx, dword [0x7273ec]
mov esi, ecx
and eax, edx
and esi, edx
mov edx, dword [esp + 0x10]
add eax, esi
mov esi, dword [0x4ac290]
and ecx, edx
shr eax, 1
and ecx, esi
add eax, ecx
or eax, ebp
jmp 0x42853f
mov edx, dword [0x737b98]
mov ecx, dword [0x7273ec]
mov eax, esi
and edx, ecx
and eax, 0xffff
mov esi, eax
and esi, ecx
mov ecx, dword [0x737b98]
add edx, esi
mov esi, dword [0x4ac290]
and eax, ecx
mov ecx, dword [0x737b60]
shr edx, 1
and eax, esi
add edx, eax
xor eax, eax
mov ax, word [ecx + edx*2]
jmp 0x42853f
and esi, 0xffff
mov eax, esi
mov edx, dword [esp + 0x20]
or ebp, eax
mov word [edx], bp
mov al, byte [0x737b94]
mov byte [edi], al
mov ecx, dword [0x727a48]
mov esi, dword [0x737b8c]
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x5c]
add eax, edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
add eax, ebp
mov ebp, dword [esp + 0x1c]
add ebp, edx
mov edx, dword [esp + 0x20]
add edx, 2
inc edi
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x2c]
cmp edx, dword [esp + 0x50]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x28], edi
jne 0x428130
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x88]
inc eax
cmp eax, edx
mov dword [esp + 0x90], eax
jb 0x427380
mov edx, dword [0x737b58]
mov edi, dword [esp + 0xa8]
mov ebp, dword [esp + 0x64]
mov eax, dword [esp + 0x68]
add edi, edx
mov edx, dword [0x737b78]
mov dword [esp + 0xa8], edi
mov edi, dword [esp + 0x4c]
add ebp, edx
mov edx, dword [0x737ba8]
inc eax
add edi, 0xc
cmp eax, edx
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], ebp
mov dword [esp + 0x4c], edi
jbe 0x42725d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret