Function at 0x428620
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 0x4286e5
mov al, byte [0x73693f]
test al, al
je 0x4286de
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 0x428679
mov eax, dword [esp + 0x64]
inc eax
cmp edi, 0x739348
mov dword [esp + 0x64], eax
jb 0x42865f
mov ecx, dword [0x727a48]
mov byte [0x73693f], 0
mov esi, 0x738348
jmp 0x4286ea
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 0x428728
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 0x4287ca
cmp word [edx + 4], 0
jne 0x4287ca
cmp word [edx], 0x100
jne 0x4287ca
cmp word [edx + 6], 0x100
jne 0x4287ca
lea eax, [ebp + ebp*2]
shl eax, 2
cmp word [eax + 0x735c6a], 0
jne 0x4287ca
cmp word [eax + 0x735c6c], 0
jne 0x4287ca
cmp word [eax + 0x735c68], 0x100
jne 0x4287ca
cmp word [eax + 0x735c6e], 0x100
jne 0x4287ca
mov byte [esp + 0x33], 1
mov eax, edi
cmp eax, ebp
mov dword [esp + 0x68], eax
ja 0x429a55
jmp 0x4287de
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 0x428842
mov edx, dword [esp + 0x68]
mov ebp, 0x105
sub ebp, edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x60], ebp
jmp 0x42884a
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x60], ebp
cmp byte [0x769645], 0
jne 0x42886d
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 0x428875
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 0x4288ba
cmp word [edx + 2], 0
jne 0x4288ba
cmp word [edx + 4], 0
jne 0x4288ba
cmp word [edx], 0x100
jne 0x4288ba
cmp word [edx + 6], 0x100
jne 0x4288ba
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 0x4288e2
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 0x429a11
mov eax, dword [0x737bac]
mov edx, dword [esp + 0xac]
jmp 0x428911
mov edx, dword [esp + 0xac]
mov eax, dword [0x737bac]
cmp dword [eax + edx*4], 0
je 0x42893e
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 0x4299f5
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 0x4289a2
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 0x4289d4
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 0x428a00
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 0x428a0a
mov edx, ebp
sub edx, dword [esp + 0x78]
add edx, dword [esp + 0x74]
cmp byte [esp + 0x32], 0
je 0x428a5b
mov al, byte [0x769645]
shl edx, 8
test al, al
mov dword [esp + 0x2c], edx
jne 0x428e80
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 0x428d52
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 0x429598
mov eax, dword [esp + 0x5c]
cmp eax, 0x1cc
jge 0x429160
cmp eax, 0xfffffe34
jle 0x429160
mov edx, dword [esp + 0x38]
cmp edx, 0x1cc
jge 0x429164
cmp edx, 0xfffffe34
jle 0x429164
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], ebp
cmp ebp, eax
je 0x4299f5
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 0x429117
mov eax, dword [esp + 0x10]
test eax, eax
je 0x429117
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 0x4290ef
cmp al, 1
je 0x4290c6
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
jmp 0x4290e4
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 0x428e47
test ebp, ebp
je 0x428e47
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 0x428e25
cmp al, 1
je 0x428dfd
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 [0x737b64]
shr esi, 1
mov si, word [ecx + esi*2]
jmp 0x428e25
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 0x428d4e
jmp 0x4299f5
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 0x428e9f
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 0x428ed2
cmp byte [0x769645], 2
jne 0x428ed2
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 0x428f9d
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 0x42908d
test ebp, ebp
je 0x42908d
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 0x42906b
cmp al, 1
je 0x429043
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 [0x737b64]
shr esi, 1
mov si, word [ecx + esi*2]
jmp 0x42906b
cmp byte [0x769645], 3
jne 0x42908d
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 0x42908d
test ebp, ebp
je 0x42908d
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 0x42906b
cmp al, 1
jne 0x428f64
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 0x428e9b
jmp 0x4299f5
mov ebp, dword [0x4ac298]
mov edx, dword [0x737b98]
mov ebx, dword [0x7273ec]
and ecx, 0xffff
or ecx, ebp
and edx, ebx
sub ecx, edx
mov eax, dword [0x737b64]
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 0x428adc
jmp 0x4299f5
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 0x4299f5
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 0x42954f
test ebp, ebp
je 0x42954f
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 0x42952c
cmp cl, 1
je 0x429503
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
jmp 0x429520
mov ebp, dword [0x4ac298]
mov ecx, dword [0x737b98]
mov esi, dword [0x7273ec]
and eax, 0xffff
or eax, ebp
and ecx, esi
sub eax, ecx
mov edx, dword [0x737b64]
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 0x4292a1
jmp 0x4299f5
mov eax, dword [esp + 0x54]
mov dword [esp + 0x14], ebp
cmp ebp, eax
je 0x4299f5
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 0x4295f8
cmp byte [0x769645], 2
jne 0x4295f8
and ebp, 0x7ff
and edx, 0x7ff
mov dword [esp + 0x20], ebp
mov eax, edx
or eax, ebp
test eax, 0xfffffc00
jne 0x4298b3
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 0x4299b1
test ebp, ebp
je 0x4299b1
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 0x429884
cmp al, 1
je 0x42985b
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
jmp 0x429879
mov ebp, dword [0x4ac298]
mov edx, dword [0x737b98]
mov ebx, dword [0x7273ec]
and ecx, 0xffff
or ecx, ebp
and edx, ebx
sub ecx, edx
mov eax, dword [0x737b64]
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 0x4299b1
cmp byte [0x769645], 3
jne 0x4299b1
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 0x4299b1
test ebp, ebp
je 0x4299b1
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 0x42998f
cmp al, 1
je 0x429967
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 [0x737b64]
shr esi, 1
mov si, word [ecx + esi*2]
jmp 0x42998f
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 0x4295c4
mov ebp, dword [esp + 0x7c]
mov eax, dword [esp + 0x94]
inc ebp
cmp ebp, eax
mov dword [esp + 0x7c], ebp
jb 0x428905
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 0x4287da
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret