Function at 0x429a60
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 + 0x9c], ebx
je 0x429b25
mov al, byte [0x73693f]
test al, al
je 0x429b1e
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 + 0x7c], ecx
mov dword [esp + 0x80], 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 + 0x80]
and ecx, 0x1c
or ecx, eax
mov eax, dword [esp + 0x84]
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 0x429ab9
mov eax, dword [esp + 0x64]
inc eax
cmp edi, 0x739348
mov dword [esp + 0x64], eax
jb 0x429a9f
mov ecx, dword [0x727a48]
mov byte [0x73693f], 0
mov esi, 0x738348
jmp 0x429b2a
mov esi, 0x73757c
mov eax, dword [0x737bac]
mov edx, dword [esp + 0xac]
mov dword [0x737b8c], esi
mov dword [esp + 0x70], 0
mov eax, dword [eax + edx*4]
mov dword [esp + 0x84], 0x100
test eax, eax
mov dword [esp + 0x94], eax
jne 0x429b68
mov dword [esp + 0x94], 1
mov eax, dword [0x737b58]
mov edi, dword [0x737ba4]
imul eax, edi
mov ebp, dword [esp + 0xa8]
mov edx, dword [0x737b88]
add ebp, eax
mov eax, dword [0x737b78]
imul eax, edi
add eax, edx
lea edx, [edi + edi*2]
mov dword [esp + 0xa8], ebp
mov ebp, dword [0x737ba8]
cmp word [edx*4 + 0x735c6a], 0
lea edx, [edx*4 + 0x735c68]
mov dword [esp + 0x64], eax
mov dword [esp + 0x50], edx
mov byte [esp + 0x33], 0
jne 0x429c0a
cmp word [edx + 4], 0
jne 0x429c0a
cmp word [edx], 0x100
jne 0x429c0a
cmp word [edx + 6], 0x100
jne 0x429c0a
lea eax, [ebp + ebp*2]
shl eax, 2
cmp word [eax + 0x735c6a], 0
jne 0x429c0a
cmp word [eax + 0x735c6c], 0
jne 0x429c0a
cmp word [eax + 0x735c68], 0x100
jne 0x429c0a
cmp word [eax + 0x735c6e], 0x100
jne 0x429c0a
mov byte [esp + 0x33], 1
mov eax, edi
cmp eax, ebp
mov dword [esp + 0x68], eax
ja 0x42aeab
jmp 0x429c1e
mov eax, dword [esp + 0x68]
shl eax, 4
xor edi, edi
mov di, word [eax + 0x734cba]
shl edi, 0x13
sar edi, 0x13
mov dword [esp + 0x74], edi
xor edi, edi
mov di, word [eax + 0x734cb8]
mov eax, edi
movsx edi, word [edx + 8]
shl edi, 0x13
sar edi, 0x13
mov dword [esp + 0x78], edi
movsx edi, word [edx + 0xa]
shl eax, 0x13
shl edi, 0x13
sar eax, 0x13
sar edi, 0x13
cmp byte [0x769644], 0
mov dword [esp + 0x80], edi
je 0x429c82
mov edx, dword [esp + 0x68]
mov ebp, 0x105
sub ebp, edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x60], ebp
jmp 0x429c8a
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x60], ebp
cmp byte [0x769645], 0
jne 0x429cad
sub eax, edi
mov ebp, 0x3ff
cdq
idiv ebp
mov ebp, dword [esp + 0x60]
add ebp, edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x60], ebp
jmp 0x429cb5
sub eax, edi
add ebp, eax
mov dword [esp + 0x60], ebp
mov al, byte [esp + 0x33]
mov byte [esp + 0x32], 0
test al, al
je 0x429cfa
cmp word [edx + 2], 0
jne 0x429cfa
cmp word [edx + 4], 0
jne 0x429cfa
cmp word [edx], 0x100
jne 0x429cfa
cmp word [edx + 6], 0x100
jne 0x429cfa
mov eax, dword [esp + 0x78]
add edi, ebp
shl eax, 8
shl edi, 8
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], edi
mov byte [esp + 0x32], 1
jmp 0x429d22
movsx eax, word [edx + 2]
mov edx, dword [esp + 0x78]
imul eax, ebp
shl edx, 8
add eax, edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x3c], eax
movsx eax, word [edx + 6]
imul eax, ebp
shl edi, 8
add eax, edi
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x94]
xor ebp, ebp
test eax, eax
mov dword [esp + 0x7c], ebp
jbe 0x42ae67
mov eax, dword [0x737bac]
mov edx, dword [esp + 0xac]
jmp 0x429d51
mov edx, dword [esp + 0xac]
mov eax, dword [0x737bac]
cmp dword [eax + edx*4], 0
je 0x429d7e
lea edi, [ebp + ebp*2 + 3]
lea ebp, [ebp + ebp*2 + 0x15]
lea edi, [edx + edi*2]
lea edx, [edx + ebp*2]
mov edi, dword [eax + edi*4]
mov eax, dword [eax + edx*4]
cmp eax, edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x84], eax
jbe 0x42ae4b
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0x70]
lea edx, [edx + eax*2]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x64]
lea edi, [edx + eax]
mov al, byte [0x769643]
test al, al
je 0x429de2
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x70]
dec edx
mov dword [esp + 0x58], 0xffffffff
lea ebp, [eax - 1]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x54], edx
mov dword [esp + 0x10], ebp
movsx eax, word [eax]
mov edx, eax
mov dword [esp + 0x18], eax
neg edx
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x50]
movsx edx, word [edx + 4]
mov dword [esp + 0x14], edx
neg edx
jmp 0x429e14
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x50]
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x54], eax
movsx eax, word [edx]
movsx edx, word [edx + 4]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x58], 1
mov dword [esp + 0x18], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x38], edx
mov dl, byte [0x769645]
test dl, dl
jne 0x429e40
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
sub eax, edx
mov ebp, 0x3ff
cdq
idiv ebp
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add edx, ebp
jmp 0x429e4a
mov edx, ebp
sub edx, dword [esp + 0x78]
add edx, dword [esp + 0x74]
cmp byte [esp + 0x32], 0
je 0x429e9b
mov al, byte [0x769645]
shl edx, 8
test al, al
mov dword [esp + 0x2c], edx
jne 0x42a2c7
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], ebp
sar eax, 8
mov ebp, dword [esp + 0x3c]
and eax, 0x3ff
mov edx, eax
and eax, 7
and edx, 0xfffffff8
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2c]
shl edx, 5
add ebp, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x10], ebp
jmp 0x42a199
imul eax, edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
imul eax, edx
mov dword [esp + 0x24], eax
mov al, byte [0x769645]
test al, al
jne 0x42a9e7
mov eax, dword [esp + 0x5c]
cmp eax, 0x1cc
jge 0x42a5a7
cmp eax, 0xfffffe34
jle 0x42a5a7
mov edx, dword [esp + 0x38]
cmp edx, 0x1cc
jge 0x42a5ab
cmp edx, 0xfffffe34
jle 0x42a5ab
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], ebp
cmp ebp, eax
je 0x42ae4b
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x3c]
add edx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x24], edx
add ebp, eax
mov dword [esp + 0x14], ebp
shr ebp, 8
shr edx, 8
mov dword [esp + 0x44], edx
mov eax, ebp
and edx, 0x3ff
and eax, 0x3ff
mov dword [esp + 0x10], edx
mov edx, eax
shr edx, 2
and edx, 0xfffffffe
and eax, 7
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x10]
and edx, 0xfffffff8
mov dword [esp + 0x20], eax
shl edx, 5
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x10]
and edx, 7
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x2c]
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 + 0x20]
lea eax, [edx + eax*8]
xor edx, edx
mov dl, byte [ebx + eax*2]
mov eax, edx
mov edx, dword [0x737bb4]
mov dword [esp + 0x10], 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 0x42a55e
mov eax, dword [esp + 0x10]
test eax, eax
je 0x42a55e
mov edx, dword [esp + 0x58]
lea eax, [edx + ebp]
mov ebp, dword [esp + 0x44]
add edx, ebp
mov ebp, dword [0x737bb0]
and edx, 0x3ff
and eax, 0x3ff
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
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 + 0x10], eax
mov eax, dword [esp + 0x2c]
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 + 0x10]
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 + 0x44]
mov dword [esp + 0x2c], 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 + 0x44], 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 + 0x10]
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 + 0x28]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x44]
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 + 0x20]
lea eax, [edx + ecx*8]
mov edx, dword [esp + 0x24]
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 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 + 0x2c]
and ebp, ebx
mov ebx, dword [esp + 0x2c]
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 + 0x10]
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
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 0x42a536
cmp al, 1
je 0x42a50d
mov edx, dword [0x737b5c]
mov esi, dword [esp + 0x1c]
mov ebp, dword [0x7273ec]
xor eax, eax
mov ax, word [esi + edx*2]
mov esi, dword [0x4ac298]
and ecx, 0xffff
and eax, ebp
or ecx, esi
sub ecx, eax
mov eax, dword [0x737b68]
shr ecx, 1
jmp 0x42a532
mov edx, dword [esp + 0x20]
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 + 0x28]
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 0x42a28e
test ebp, ebp
je 0x42a28e
mov eax, dword [0x737b90]
mov edx, dword [0x737bb0]
and ebp, edx
mov al, byte [eax + edi]
mov si, word [esi + ebp*2]
test al, al
je 0x42a26c
cmp al, 1
je 0x42a244
mov edx, dword [0x737b5c]
mov eax, dword [esp + 0x1c]
mov ebp, dword [0x4ac298]
xor ecx, ecx
mov cx, word [eax + edx*2]
mov edx, dword [0x7273ec]
and esi, 0xffff
and ecx, edx
or esi, ebp
sub esi, ecx
mov ecx, dword [0x737b68]
shr esi, 1
mov si, word [ecx + esi*2]
jmp 0x42a26c
mov eax, dword [0x4ac298]
mov edx, dword [0x737b98]
mov ebp, dword [0x7273ec]
and esi, 0xffff
or esi, eax
mov eax, dword [0x737b64]
and edx, ebp
sub esi, edx
shr esi, 1
mov si, word [eax + esi*2]
mov ecx, dword [0x7c5f34]
mov edx, dword [esp + 0x1c]
or ecx, esi
mov word [edx], cx
mov al, byte [0x737b94]
mov byte [edi], al
mov ecx, dword [0x727a48]
mov esi, dword [0x737b8c]
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x5c]
add edx, 2
add ebp, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x58]
add eax, edx
mov edx, dword [esp + 0x54]
inc edi
cmp eax, edx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x18], eax
jne 0x42a195
jmp 0x42ae4b
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x3c]
sar eax, 8
add edx, ebp
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], edx
jmp 0x42a2e6
mov eax, dword [esp + 0x20]
mov ebp, edx
mov dl, byte [0x73833f]
sar ebp, 8
test dl, dl
mov dword [esp + 0x38], ebp
mov dword [esp + 0x24], eax
je 0x42a319
cmp byte [0x769645], 2
jne 0x42a319
and ebp, 0x7ff
and eax, 0x7ff
mov dword [esp + 0x38], ebp
mov dword [esp + 0x24], eax
mov edx, eax
or edx, ebp
test edx, 0xfffffc00
jne 0x42a3e4
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 + 0x24]
and eax, 7
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x38]
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 0x42a4d4
test ebp, ebp
je 0x42a4d4
mov eax, dword [0x737b90]
mov edx, dword [0x737bb0]
and ebp, edx
mov al, byte [eax + edi]
mov si, word [esi + ebp*2]
test al, al
je 0x42a4b2
cmp al, 1
je 0x42a48a
mov edx, dword [0x737b5c]
mov eax, dword [esp + 0x1c]
mov ebp, dword [0x4ac298]
xor ecx, ecx
mov cx, word [eax + edx*2]
mov edx, dword [0x7273ec]
and esi, 0xffff
and ecx, edx
or esi, ebp
sub esi, ecx
mov ecx, dword [0x737b68]
shr esi, 1
mov si, word [ecx + esi*2]
jmp 0x42a4b2
cmp byte [0x769645], 3
jne 0x42a4d4
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x80]
add eax, edx
mov edx, dword [esp + 0x60]
and eax, 7
add edx, ebp
mov dword [esp + 0x38], eax
and edx, 7
mov ebp, ecx
mov dword [esp + 0x24], 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 + 0x24]
and eax, 7
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x38]
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 0x42a4d4
test ebp, ebp
je 0x42a4d4
mov eax, dword [0x737b90]
mov edx, dword [0x737bb0]
and ebp, edx
mov al, byte [eax + edi]
mov si, word [esi + ebp*2]
test al, al
je 0x42a4b2
cmp al, 1
jne 0x42a3ab
mov eax, dword [0x4ac298]
mov edx, dword [0x737b98]
mov ebp, dword [0x7273ec]
and esi, 0xffff
or esi, eax
mov eax, dword [0x737b64]
and edx, ebp
sub esi, edx
shr esi, 1
mov si, word [eax + esi*2]
mov ecx, dword [0x7c5f34]
mov edx, dword [esp + 0x1c]
or ecx, esi
mov word [edx], cx
mov al, byte [0x737b94]
mov byte [edi], al
mov ecx, dword [0x727a48]
mov esi, dword [0x737b8c]
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x5c]
add ebp, 2
add edx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x58]
add eax, ebp
mov ebp, dword [esp + 0x54]
inc edi
cmp eax, ebp
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
jne 0x42a2e2
jmp 0x42ae4b
mov ebp, dword [0x4ac298]
mov edx, dword [0x737b98]
mov ebx, dword [0x7273ec]
mov eax, dword [0x737b64]
and ecx, 0xffff
and edx, ebx
or ecx, ebp
sub ecx, edx
shr ecx, 1
mov cx, word [eax + ecx*2]
mov eax, dword [0x7c5f34]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x9c]
or ecx, eax
mov word [edx], cx
mov al, byte [0x737b94]
mov byte [edi], al
mov ecx, dword [0x727a48]
mov esi, dword [0x737b8c]
mov edx, dword [esp + 0x58]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x38]
add ebp, edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x14]
add ebp, edx
mov edx, dword [esp + 0x24]
add edx, eax
mov eax, dword [esp + 0x1c]
add eax, 2
inc edi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x54]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x24], edx
jne 0x429f1c
jmp 0x42ae4b
mov edx, dword [esp + 0x38]
sar eax, 1
mov dword [esp + 0x18], eax
mov eax, edx
sar eax, 1
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10], 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 + 0x20], eax
mov eax, dword [esp + 0x3c]
shr edx, 1
sub eax, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x34]
shr edx, 1
sub eax, edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x18]
shr eax, 1
sub edx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x14]
shr edx, 1
sub eax, edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
add eax, edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x40]
add edx, eax
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x18]
add eax, edx
mov edx, dword [esp + 0x3c]
add eax, edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x14]
add eax, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
add edx, eax
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x14]
add edx, eax
mov eax, dword [esp + 0x34]
add edx, eax
mov eax, dword [esp + 0x54]
cmp ebp, eax
je 0x42ae4b
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
add ebp, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x28]
add eax, ebp
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
sub eax, ebp
mov ebp, dword [esp + 0x18]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x34]
sub eax, ebp
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x40]
sub eax, ebp
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x44]
sub eax, ebp
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x20]
sub eax, ebp
sub edx, ebp
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0xa0]
add eax, ebp
mov ebp, dword [esp + 0x8c]
sar eax, 8
add edx, ebp
and eax, 0x3ff
sar edx, 8
mov dword [esp + 0x44], 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 + 0x44]
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 + 0x4c], 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 0x42a99e
test ebp, ebp
je 0x42a99e
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x14]
mov eax, edx
shr eax, 8
and eax, 0x3ff
mov dword [esp + 0x18], eax
mov eax, ebp
shr eax, 8
and eax, 0x3ff
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x90]
add eax, edx
shr eax, 8
and eax, 0x3ff
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x88]
add eax, ebp
shr eax, 8
and eax, 0x3ff
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x98]
add eax, edx
mov edx, dword [esp + 0x6c]
shr eax, 8
add edx, ebp
and eax, 0x3ff
shr edx, 8
mov dword [esp + 0x44], 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 + 0x44]
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 + 0x20]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
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 + 0x20]
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 [esp + 0x18]
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 + 0x18]
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 + 0x4c]
and edx, eax
xor eax, eax
mov ax, word [esi + edx*2]
mov edx, dword [0x7c5f3c]
mov esi, ecx
mov dword [esp + 0x4c], eax
and eax, edx
and esi, edx
add eax, esi
mov esi, ebp
and esi, edx
add eax, esi
mov esi, dword [esp + 0x2c]
and esi, edx
add eax, esi
mov esi, dword [0x7c5f40]
shr eax, 2
and eax, edx
mov edx, dword [esp + 0x4c]
shr edx, 2
and edx, esi
shr ecx, 2
add eax, edx
and ecx, esi
add eax, ecx
mov ecx, dword [esp + 0x2c]
shr ebp, 2
and ebp, esi
shr ecx, 2
add eax, ebp
and ecx, esi
add eax, ecx
mov ecx, dword [0x737b90]
mov cl, byte [ecx + edi]
test cl, cl
je 0x42a97b
cmp cl, 1
je 0x42a952
mov ecx, dword [0x737b5c]
mov esi, dword [esp + 0x1c]
mov ebp, dword [0x4ac298]
xor edx, edx
mov dx, word [esi + ecx*2]
mov esi, dword [0x7273ec]
and eax, 0xffff
and edx, esi
or eax, ebp
sub eax, edx
mov edx, dword [0x737b68]
shr eax, 1
jmp 0x42a977
mov ebp, dword [0x4ac298]
mov ecx, dword [0x737b98]
mov esi, dword [0x7273ec]
mov edx, dword [0x737b64]
and eax, 0xffff
and ecx, esi
or eax, ebp
sub eax, ecx
shr eax, 1
mov ax, word [edx + eax*2]
mov ecx, dword [0x7c5f34]
or eax, ecx
mov ecx, dword [esp + 0x1c]
mov word [ecx], ax
mov dl, byte [0x737b94]
mov byte [edi], dl
mov ecx, dword [0x727a48]
mov esi, dword [0x737b8c]
mov eax, dword [esp + 0x58]
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x5c]
add ebp, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x38]
add eax, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
add edx, ebp
mov ebp, dword [esp + 0x1c]
add ebp, 2
inc edi
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x10]
cmp ebp, dword [esp + 0x54]
mov dword [esp + 0x14], edx
jne 0x42a6e8
jmp 0x42ae4b
mov eax, dword [esp + 0x54]
mov dword [esp + 0x14], ebp
cmp ebp, eax
je 0x42ae4b
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x3c]
add edx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], edx
add ebp, eax
mov dword [esp + 0x10], ebp
mov al, byte [0x73833f]
shr ebp, 8
shr edx, 8
test al, al
mov dword [esp + 0x28], ebp
mov dword [esp + 0x48], edx
mov dword [esp + 0x20], ebp
je 0x42aa47
cmp byte [0x769645], 2
jne 0x42aa47
and ebp, 0x7ff
and edx, 0x7ff
mov dword [esp + 0x20], ebp
mov eax, edx
or eax, ebp
test eax, 0xfffffc00
jne 0x42ad09
mov eax, edx
and edx, 7
shr ebp, 2
and al, 0xf8
and ebp, 0xfffffffe
shl eax, 5
mov dword [esp + 0x88], ebp
mov dword [esp + 0x6c], eax
add ebp, eax
xor eax, eax
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x20]
mov al, byte [ecx + ebp]
mov ebp, dword [esp + 0x24]
and edx, 7
lea eax, [ebp + eax*8]
mov dword [esp + 0x90], edx
lea edx, [edx + eax*8]
xor eax, eax
mov al, byte [ebx + edx*2]
mov ebp, eax
mov eax, dword [0x737bb4]
mov edx, ebp
mov dword [esp + 0x4c], 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 0x42ae07
test ebp, ebp
je 0x42ae07
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x58]
mov ebp, dword [esp + 0x48]
add eax, edx
add edx, ebp
mov ebp, dword [0x737bb0]
and edx, 0x3ff
and eax, 0x3ff
mov dword [esp + 0x98], edx
mov edx, dword [esp + 0x4c]
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 + 0x20], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x4c], edx
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 + 0x20]
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 + 0x98]
mov dword [esp + 0x8c], eax
mov eax, edx
and al, 0xf8
and edx, 7
shl eax, 5
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x6c], eax
add eax, edx
xor edx, edx
mov dl, byte [eax + ecx]
mov eax, dword [esp + 0x28]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x20]
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 + 0x88]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x6c]
add eax, edx
xor edx, edx
mov dl, byte [eax + ecx]
mov eax, dword [esp + 0x28]
lea ecx, [eax + edx*8]
mov edx, dword [esp + 0x90]
lea eax, [edx + ecx*8]
mov edx, dword [esp + 0x18]
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 + 0x10]
shr ecx, 3
and edx, 0x1f
and ecx, 0x1f
mov esi, edx
mov dword [esp + 0x20], eax
imul esi, ecx
mov ebx, dword [0x4ac2a0]
mov eax, ebp
and ebp, dword [0x7c5f38]
and eax, ebx
shl eax, 0x10
shr esi, 5
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 + 0x20]
and ebp, ebx
mov ebx, dword [esp + 0x20]
and ebx, dword [0x7c5f38]
shl ebp, 0x10
or ebp, ebx
mov ebx, dword [esp + 0x8c]
imul ebp, edx
mov edx, dword [0x4ac2a0]
add eax, ebp
mov ebp, ebx
and ebp, edx
mov edx, dword [0x7c5f38]
shl ebp, 0x10
and ebx, edx
or ebp, ebx
mov ebx, dword [0x4ac2a0]
imul ebp, ecx
mov ecx, dword [esp + 0x4c]
add eax, ebp
mov ebp, ecx
and ecx, edx
and ebp, ebx
shl ebp, 0x10
or ebp, ecx
imul ebp, esi
add eax, ebp
shr eax, 5
mov ecx, eax
and edx, eax
shr ecx, 0x10
and ecx, ebx
or ecx, edx
mov edx, dword [0x737b90]
mov al, byte [edx + edi]
test al, al
je 0x42acda
cmp al, 1
je 0x42acb1
mov edx, dword [0x737b5c]
mov esi, dword [esp + 0x1c]
mov ebp, dword [0x7273ec]
xor eax, eax
mov ax, word [esi + edx*2]
mov esi, dword [0x4ac298]
and ecx, 0xffff
and eax, ebp
or ecx, esi
sub ecx, eax
mov eax, dword [0x737b68]
shr ecx, 1
jmp 0x42acd6
mov ebp, dword [0x4ac298]
mov edx, dword [0x737b98]
mov ebx, dword [0x7273ec]
mov eax, dword [0x737b64]
and ecx, 0xffff
and edx, ebx
or ecx, ebp
sub ecx, edx
shr ecx, 1
mov cx, word [eax + ecx*2]
mov edx, dword [0x7c5f34]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x9c]
or edx, ecx
mov word [eax], dx
mov cl, byte [0x737b94]
mov byte [edi], cl
mov ecx, dword [0x727a48]
mov esi, dword [0x737b8c]
jmp 0x42ae07
cmp byte [0x769645], 3
jne 0x42ae07
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x60]
mov ebp, dword [esp + 0x14]
add eax, edx
mov edx, dword [esp + 0x74]
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 0x42ae07
test ebp, ebp
je 0x42ae07
mov eax, dword [0x737b90]
mov edx, dword [0x737bb0]
and ebp, edx
mov al, byte [eax + edi]
mov si, word [esi + ebp*2]
test al, al
je 0x42ade5
cmp al, 1
je 0x42adbd
mov edx, dword [0x737b5c]
mov eax, dword [esp + 0x1c]
mov ebp, dword [0x4ac298]
xor ecx, ecx
mov cx, word [eax + edx*2]
mov edx, dword [0x7273ec]
and esi, 0xffff
and ecx, edx
or esi, ebp
sub esi, ecx
mov ecx, dword [0x737b68]
shr esi, 1
mov si, word [ecx + esi*2]
jmp 0x42ade5
mov eax, dword [0x4ac298]
mov edx, dword [0x737b98]
mov ebp, dword [0x7273ec]
and esi, 0xffff
or esi, eax
mov eax, dword [0x737b64]
and edx, ebp
sub esi, edx
shr esi, 1
mov si, word [eax + esi*2]
mov ecx, dword [0x7c5f34]
mov edx, dword [esp + 0x1c]
or ecx, esi
mov word [edx], cx
mov al, byte [0x737b94]
mov byte [edi], al
mov ecx, dword [0x727a48]
mov esi, dword [0x737b8c]
mov edx, dword [esp + 0x58]
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
add ebp, edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x10]
add ebp, edx
mov edx, dword [esp + 0x18]
add edx, eax
mov eax, dword [esp + 0x1c]
add eax, 2
inc edi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x54]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x18], edx
jne 0x42aa13
mov ebp, dword [esp + 0x7c]
mov eax, dword [esp + 0x94]
inc ebp
cmp ebp, eax
mov dword [esp + 0x7c], ebp
jb 0x429d45
mov edx, dword [esp + 0x50]
mov edi, dword [0x737b58]
mov ebp, dword [esp + 0xa8]
mov eax, dword [esp + 0x68]
add ebp, edi
mov edi, dword [0x737b78]
mov dword [esp + 0xa8], ebp
mov ebp, dword [esp + 0x64]
inc eax
add ebp, edi
mov edi, dword [0x737ba8]
add edx, 0xc
cmp eax, edi
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], ebp
mov dword [esp + 0x50], edx
jbe 0x429c1a
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret