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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x58]
cmp eax, dword [ecx + 8]
jbe 0x63a0fb
sub esp, 0xd8
mov ebx, dword [esp + 0xdc]
mov ebp, dword [ebx + 0x24]
test ebp, ebp
jne 0x6393db
mov ebp, dword [esp + 0xe4]
test ebp, ebp
je 0x6393d4
mov esi, dword [esp + 0xe0]
lea edi, [esi + ebp*4 - 4]
mov edi, dword [edi]
cmp edi, 0x100
jne 0x639337
dec ebp
mov edx, dword [esp + 0xf4]
cmp edx, 0x100
jb 0x63a0f0
mov eax, edi
mov edi, dword [esp + 0x100]
cmp edi, 0x20
jb 0x63a0e4
mov ecx, dword [esp + 0xf0]
cmp ecx, 0x101
jb 0x63a0da
add edx, 0xfffffeff
mov edi, edx
neg edx
sar edx, 0x1f
and edx, 0x404
mov ecx, esi
mov esi, dword [esp + 0xec]
add esi, edx
cmp edi, 0x20
jb 0x63a0ce
mov dword [esp + 0xd4], esi
mov dword [esp + 0xb0], ebp
mov dword [esp + 0xac], eax
mov edi, dword [ebx + 8]
mov edx, esi
mov esi, dword [ebx + 0xc]
movzx ebp, byte [ebx + 0x10]
movzx ebx, byte [ebx + 0x11]
mov dword [esp + 0xcc], eax
xor eax, eax
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xcc]
jmp 0x639409
add esp, 0xd8
ret
add esp, 0xd8
ret
mov eax, dword [esp + 0xa8]
inc eax
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0xa8], eax
mov ebp, ebx
mov ebx, edi
mov eax, dword [esp + 0xac]
mov edi, esi
mov esi, dword [esp + 0x60]
mov dword [esp + 0x5c], edi
mov byte [esp + 0x1d], bl
mov ebx, dword [esp + 0xb0]
mov edi, dword [esp + 0xa8]
cmp ebx, edi
jle 0x639fd5
mov dword [esp + 0x60], esi
xchg ebp, eax
mov byte [esp + 0x1f], al
xchg ebp, eax
mov ebx, dword [ecx + edi*4]
cmp ebx, 0x100
jae 0x639677
and ebp, 0x3f
xchg ebp, eax
mov byte [esp + 0x2b], al
xchg ebp, eax
lea edi, [ebp - 0x20]
xchg edi, eax
mov byte [esp + 0x2a], al
xchg edi, eax
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb esi, esi
xchg edi, ebx
neg ebx
xchg edi, ebx
xchg edi, eax
mov byte [esp + 0x29], al
xchg edi, eax
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb ebp, ebp
mov dword [esp + 0xa4], ebp
mov ebp, dword [esp + 0xec]
mov ebx, dword [ebp + ebx*4]
mov dword [esp + 0x54], ebx
shr ebx, 8
mov dword [esp + 0xa0], ebx
movzx ecx, byte [esp + 0x2a]
shl ebx, cl
and ebx, esi
movzx ecx, byte [esp + 0x29]
mov esi, dword [esp + 0xa0]
shr esi, cl
and esi, edi
or esi, ebx
mov ebx, dword [esp + 0x60]
or esi, ebx
movzx ecx, byte [esp + 0x2b]
mov ebx, dword [esp + 0xa0]
shl ebx, cl
mov edi, dword [esp + 0xa4]
and ebx, edi
mov edi, dword [esp + 0x5c]
or edi, ebx
mov ebx, dword [esp + 0x54]
mov ecx, ebp
movzx ebp, byte [esp + 0x1f]
add ebx, ebp
cmp bl, 0x30
jb 0x639660
movzx ebx, byte [esp + 0x1d]
movzx ebx, bl
cmp ebx, 0x108
ja 0x63a0c2
lea ebp, [ebx - 0x108]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
mov dword [esp + 0x48], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebx, ebp
mov ebp, dword [esp + 0x48]
cmp ebp, 7
jbe 0x63a0b6
mov dword [esp + 0x9c], edi
mov dword [esp + 0x98], esi
mov ebp, dword [esp + 0xdc]
xchg edi, eax
mov byte [ebp + ebx + 0x34], al
xchg edi, eax
shr edi, 8
shl esi, 0x18
or edi, esi
xchg edi, eax
mov byte [ebp + ebx + 0x35], al
xchg edi, eax
mov esi, dword [esp + 0x9c]
shr esi, 0x10
mov edi, dword [esp + 0x98]
shl edi, 0x10
or edi, esi
xchg edi, eax
mov byte [ebp + ebx + 0x36], al
xchg edi, eax
mov esi, dword [esp + 0x98]
shl esi, 8
mov edi, dword [esp + 0x9c]
shr edi, 0x18
or edi, esi
xchg edi, eax
mov byte [ebp + ebx + 0x37], al
xchg edi, eax
mov esi, dword [esp + 0x98]
mov dword [ebp + ebx + 0x38], esi
mov ebx, dword [esp + 0x54]
movzx edi, byte [esp + 0x1f]
lea ebx, [edi + ebx - 0x30]
movzx edi, byte [esp + 0x1d]
add edi, 6
xchg edi, eax
cmp al, 0xf6
xchg edi, eax
jb 0x639644
mov eax, dword [ebp + 0x24]
test eax, eax
jne 0x639fb2
xchg edi, ebx
movzx eax, bl
xchg edi, ebx
cmp eax, 0x108
ja 0x63a0aa
mov byte [esp + 0x28], bl
mov ecx, dword [ebp]
mov edx, dword [ebp + 4]
mov ecx, dword [ecx + 0x10]
mov dword [esp], edx
lea edx, [ebp + 0x34]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x108
call ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xdc]
mov dword [edx + 0x24], ecx
mov ecx, dword [0x900e70]
test ecx, ecx
jne 0x639612
mov dword [edx + 0x28], eax
jmp 0x63961a
lea edi, [edx + 0x28]
call fcn.00456ac0
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0xd4]
movzx ebx, byte [esp + 0x28]
mov ebp, dword [esp + 0xdc]
mov esi, dword [esp + 0x98]
xor edi, edi
shr esi, 0x10
mov dword [esp + 0xc4], eax
xor eax, eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xc4]
jmp 0x6393e2
mov ebp, dword [esp + 0xdc]
mov dword [esp + 0x60], esi
mov esi, edi
movzx edi, byte [esp + 0x1d]
jmp 0x6393e2
mov dword [esp + 0x34], ebx
and ebp, 0x3f
xchg ebp, eax
mov byte [esp + 0x2b], al
xchg ebp, eax
lea edi, [ebp - 0x20]
xchg edi, eax
mov byte [esp + 0x2a], al
xchg edi, eax
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb esi, esi
xchg edi, ebx
neg ebx
xchg edi, ebx
xchg edi, eax
mov byte [esp + 0x29], al
xchg edi, eax
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb ebp, ebp
mov dword [esp + 0xa4], ebp
nop
shr ebx, 0x16
mov dword [esp + 0x94], ebx
movzx ebx, bl
lea ebp, [0x67a000]
movzx ebx, byte [ebx + ebp]
mov byte [esp + 0x1c], bl
and ebx, 0x1f
mov ebp, dword [edx + ebx*4]
mov dword [esp + 0x50], ebp
shr ebp, 8
mov dword [esp + 0xa0], ebp
movzx ecx, byte [esp + 0x2a]
shl ebp, cl
and ebp, esi
movzx ecx, byte [esp + 0x29]
mov esi, dword [esp + 0xa0]
shr esi, cl
and esi, edi
or esi, ebp
mov ebp, dword [esp + 0x60]
or esi, ebp
movzx ecx, byte [esp + 0x2b]
mov ebp, dword [esp + 0xa0]
shl ebp, cl
mov edi, dword [esp + 0xa4]
and ebp, edi
mov edi, dword [esp + 0x5c]
or edi, ebp
mov ebp, dword [esp + 0x50]
mov ecx, ebx
movzx ebx, byte [esp + 0x1f]
add ebx, ebp
cmp bl, 0x30
jb 0x6398b6
movzx ebx, byte [esp + 0x1d]
movzx ebx, bl
cmp ebx, 0x108
ja 0x63a09e
lea ebp, [ebx - 0x108]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
mov dword [esp + 0x44], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebx, ebp
mov ebp, dword [esp + 0x44]
cmp ebp, 7
jbe 0x63a092
mov dword [esp + 0x90], edi
mov dword [esp + 0x8c], esi
mov ebp, dword [esp + 0xdc]
xchg edi, eax
mov byte [ebp + ebx + 0x34], al
xchg edi, eax
shr edi, 8
shl esi, 0x18
or edi, esi
xchg edi, eax
mov byte [ebp + ebx + 0x35], al
xchg edi, eax
mov esi, dword [esp + 0x90]
shr esi, 0x10
mov edi, dword [esp + 0x8c]
shl edi, 0x10
or edi, esi
xchg edi, eax
mov byte [ebp + ebx + 0x36], al
xchg edi, eax
mov esi, dword [esp + 0x8c]
shl esi, 8
mov edi, dword [esp + 0x90]
shr edi, 0x18
or edi, esi
xchg edi, eax
mov byte [ebp + ebx + 0x37], al
xchg edi, eax
mov esi, dword [esp + 0x8c]
mov dword [ebp + ebx + 0x38], esi
mov ebx, dword [esp + 0x50]
movzx edi, byte [esp + 0x1f]
lea ebx, [edi + ebx - 0x30]
movzx edi, byte [esp + 0x1d]
add edi, 6
xchg edi, eax
cmp al, 0xf6
xchg edi, eax
jb 0x63989d
mov eax, dword [ebp + 0x24]
test eax, eax
jne 0x639fb9
xchg edi, ebx
movzx eax, bl
xchg edi, ebx
cmp eax, 0x108
ja 0x63a086
mov dword [esp + 0x88], ecx
mov byte [esp + 0x27], bl
mov ecx, dword [ebp]
mov edx, dword [ebp + 4]
mov ecx, dword [ecx + 0x10]
mov dword [esp], edx
lea edx, [ebp + 0x34]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x108
call ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xdc]
mov dword [edx + 0x24], ecx
mov ecx, dword [0x900e70]
test ecx, ecx
jne 0x63986b
mov dword [edx + 0x28], eax
jmp 0x639873
lea edi, [edx + 0x28]
call fcn.00456ac0
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0xd4]
movzx ebx, byte [esp + 0x27]
mov ebp, dword [esp + 0xdc]
mov esi, dword [esp + 0x8c]
xor edi, edi
shr esi, 0x10
mov dword [esp + 0xbc], eax
xor eax, eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xbc]
jmp 0x6398c8
mov ebp, dword [esp + 0xdc]
mov dword [esp + 0x60], esi
mov esi, edi
movzx edi, byte [esp + 0x1d]
movzx ebp, byte [esp + 0x1c]
and ebp, 0x1f
xchg ebp, eax
cmp al, 8
xchg ebp, eax
jb 0x639b0f
mov dword [esp + 0x84], esi
xchg edi, eax
mov byte [esp + 0x26], al
xchg edi, eax
mov byte [esp + 0x25], bl
and ebx, 0x3f
mov byte [esp + 0x2b], bl
lea edi, [ebx - 0x20]
xchg edi, eax
mov byte [esp + 0x2a], al
xchg edi, eax
xchg edi, ebx
neg ebx
xchg edi, ebx
xchg edi, eax
mov byte [esp + 0x29], al
xchg edi, eax
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb ebp, ebp
mov dword [esp + 0xa4], ebp
movzx esi, byte [esp + 0x2a]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb ebp, ebp
cmp bl, 0x20
sbb ebx, ebx
mov dword [esp + 0x80], ebx
lea ebx, [0x674ca0]
movzx ebx, byte [ebx + ecx]
mov byte [esp + 0x1e], bl
lea ebx, [0x674ce0]
movzx ebx, byte [ebx + ecx]
mov edi, dword [esp + 0x94]
sub edi, ebx
xchg edi, eax
movzx ebx, al
xchg edi, eax
mov dword [esp + 0x58], ebx
mov edi, ebx
sar ebx, 0x1f
mov ecx, esi
mov esi, edi
shl edi, cl
and edi, ebp
movzx ecx, byte [esp + 0x29]
shr esi, cl
mov ebp, dword [esp + 0xa4]
and esi, ebp
movzx ecx, byte [esp + 0x2b]
shl ebx, cl
mov ebp, dword [esp + 0x80]
and ebx, ebp
or ebx, esi
or ebx, edi
mov esi, dword [esp + 0x60]
or ebx, esi
mov esi, dword [esp + 0x58]
shl esi, cl
and esi, ebp
mov ebp, dword [esp + 0x84]
or ebp, esi
movzx esi, byte [esp + 0x25]
movzx edi, byte [esp + 0x1e]
mov ecx, esi
add esi, edi
xchg esi, eax
cmp al, 0x30
xchg esi, eax
jb 0x639afb
movzx esi, byte [esp + 0x26]
xchg esi, eax
movzx eax, al
xchg esi, eax
cmp esi, 0x108
ja 0x63a07a
lea edi, [esi - 0x108]
xchg edi, ebx
neg ebx
xchg edi, ebx
mov dword [esp + 0x40], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and esi, edi
mov edi, dword [esp + 0x40]
cmp edi, 7
jbe 0x63a06e
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x78], ebp
mov edi, dword [esp + 0xdc]
xchg ebp, eax
mov byte [edi + esi + 0x34], al
xchg ebp, eax
shr ebp, 8
shl ebx, 0x18
or ebp, ebx
xchg ebp, eax
mov byte [edi + esi + 0x35], al
xchg ebp, eax
mov ebx, dword [esp + 0x7c]
shl ebx, 0x10
mov ebp, dword [esp + 0x78]
shr ebp, 0x10
or ebp, ebx
xchg ebp, eax
mov byte [edi + esi + 0x36], al
xchg ebp, eax
mov ebx, dword [esp + 0x7c]
shl ebx, 8
mov ebp, dword [esp + 0x78]
shr ebp, 0x18
or ebx, ebp
mov byte [edi + esi + 0x37], bl
mov ebx, dword [esp + 0x7c]
mov dword [edi + esi + 0x38], ebx
movzx ebp, byte [esp + 0x1e]
lea ebp, [ebp + ecx - 0x30]
movzx esi, byte [esp + 0x26]
add esi, 6
xchg esi, eax
cmp al, 0xf6
xchg esi, eax
jb 0x639af4
mov eax, dword [edi + 0x24]
test eax, eax
jne 0x639fc0
xchg esi, ebx
movzx eax, bl
xchg esi, ebx
cmp eax, 0x108
ja 0x63a062
xchg ebp, eax
mov byte [esp + 0x24], al
xchg ebp, eax
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov ecx, dword [ecx + 0x10]
mov dword [esp], edx
lea edx, [edi + 0x34]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x108
call ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xdc]
mov dword [edx + 0x24], ecx
mov ecx, dword [0x900e70]
test ecx, ecx
jne 0x639acc
mov dword [edx + 0x28], eax
jmp 0x639ad4
lea edi, [edx + 0x28]
call fcn.00456ac0
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0xd4]
mov ebx, dword [esp + 0x7c]
movzx ebp, byte [esp + 0x24]
mov edi, dword [esp + 0xdc]
xor esi, esi
shr ebx, 0x10
xor ecx, ecx
jmp 0x639b20
mov edi, dword [esp + 0xdc]
mov ecx, ebx
mov ebx, ebp
mov ebp, esi
movzx esi, byte [esp + 0x26]
jmp 0x639b20
mov ecx, dword [esp + 0x60]
mov ebp, ebx
mov ebx, esi
mov esi, edi
mov edi, dword [esp + 0xdc]
mov dword [esp + 0x60], ecx
xchg esi, eax
mov byte [esp + 0x1d], al
xchg esi, eax
xchg ebp, eax
mov byte [esp + 0x1f], al
xchg ebp, eax
mov dword [esp + 0x5c], ebx
and ebp, 0x3f
xchg ebp, eax
mov byte [esp + 0x2b], al
xchg ebp, eax
lea edi, [ebp - 0x20]
xchg edi, eax
mov byte [esp + 0x2a], al
xchg edi, eax
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb esi, esi
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb ebx, ebx
mov dword [esp + 0xa4], ebx
xchg edi, ebx
neg ebx
xchg edi, ebx
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb ebx, ebx
mov dword [esp + 0x80], ebx
nop
mov ebp, dword [esp + 0x34]
and ebp, 0x3fffff
mov dword [esp + 0x2c], ebp
shr ebp, 0x10
and ebp, 0x1f
mov ebx, dword [esp + 0xf8]
mov ebx, dword [ebx + ebp*4]
mov dword [esp + 0x4c], ebx
shr ebx, 8
mov dword [esp + 0xa0], ebx
movzx ecx, byte [esp + 0x2a]
shl ebx, cl
and ebx, esi
mov ecx, edi
mov esi, dword [esp + 0xa0]
mov edi, esi
shr esi, cl
mov ecx, ebp
mov ebp, dword [esp + 0x80]
and esi, ebp
or ebx, esi
mov ebp, dword [esp + 0x60]
or ebx, ebp
mov ebp, ecx
movzx ecx, byte [esp + 0x2b]
shl edi, cl
mov esi, dword [esp + 0xa4]
and esi, edi
mov edi, dword [esp + 0x5c]
or edi, esi
movzx esi, byte [esp + 0x1f]
mov ecx, ebp
mov ebp, dword [esp + 0x4c]
add ebp, esi
xchg ebp, eax
cmp al, 0x30
xchg ebp, eax
jb 0x639d5b
movzx ebp, byte [esp + 0x1d]
xchg ebp, eax
movzx eax, al
xchg ebp, eax
cmp ebp, 0x108
ja 0x63a056
lea esi, [ebp - 0x108]
xchg esi, ebx
neg ebx
xchg esi, ebx
mov dword [esp + 0x3c], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and ebp, esi
mov esi, dword [esp + 0x3c]
cmp esi, 7
jbe 0x63a04a
mov dword [esp + 0x74], ebx
mov dword [esp + 0x70], edi
mov esi, dword [esp + 0xdc]
xchg edi, eax
mov byte [esi + ebp + 0x34], al
xchg edi, eax
shr edi, 8
shl ebx, 0x18
or edi, ebx
xchg edi, eax
mov byte [esi + ebp + 0x35], al
xchg edi, eax
mov ebx, dword [esp + 0x70]
shr ebx, 0x10
mov edi, dword [esp + 0x74]
shl edi, 0x10
or edi, ebx
xchg edi, eax
mov byte [esi + ebp + 0x36], al
xchg edi, eax
mov ebx, dword [esp + 0x74]
shl ebx, 8
mov edi, dword [esp + 0x70]
shr edi, 0x18
or ebx, edi
mov byte [esi + ebp + 0x37], bl
mov ebx, dword [esp + 0x74]
mov dword [esi + ebp + 0x38], ebx
movzx ebp, byte [esp + 0x1f]
mov edi, dword [esp + 0x4c]
lea ebp, [edi + ebp - 0x30]
movzx edi, byte [esp + 0x1d]
add edi, 6
xchg edi, eax
cmp al, 0xf6
xchg edi, eax
jb 0x639d42
mov eax, dword [esi + 0x24]
test eax, eax
jne 0x639fc7
xchg edi, ebx
movzx eax, bl
xchg edi, ebx
cmp eax, 0x108
ja 0x63a03e
mov dword [esp + 0xa4], ecx
xchg ebp, eax
mov byte [esp + 0x23], al
xchg ebp, eax
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
mov dword [esp], edx
lea edx, [esi + 0x34]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x108
call ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xdc]
mov dword [edx + 0x24], ecx
mov ecx, dword [0x900e70]
test ecx, ecx
jne 0x639d13
mov dword [edx + 0x28], eax
jmp 0x639d1b
lea edi, [edx + 0x28]
call fcn.00456ac0
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xd4]
mov ebx, dword [esp + 0x74]
movzx ebp, byte [esp + 0x23]
mov esi, dword [esp + 0xdc]
xor edi, edi
shr ebx, 0x10
mov dword [esp + 0xb4], eax
xor eax, eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xb4]
jmp 0x639d6d
mov esi, dword [esp + 0xdc]
mov dword [esp + 0x60], ebx
mov ebx, edi
movzx edi, byte [esp + 0x1d]
cmp ecx, 4
jb 0x639f88
mov dword [esp + 0x6c], ebx
xchg edi, eax
mov byte [esp + 0x22], al
xchg edi, eax
xchg ebp, eax
mov byte [esp + 0x21], al
xchg ebp, eax
and ebp, 0x3f
xchg ebp, eax
mov byte [esp + 0x2b], al
xchg ebp, eax
lea esi, [ebp - 0x20]
xchg esi, eax
mov byte [esp + 0x2a], al
xchg esi, eax
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb edi, edi
xchg esi, ebx
neg ebx
xchg esi, ebx
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb ebx, ebx
mov dword [esp + 0xa4], ebx
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb ebp, ebp
mov dword [esp + 0x80], ebp
lea ebp, [0x901220]
mov ebp, dword [ebp + ecx*4]
mov ecx, ebp
shr ebp, 8
mov ebx, dword [esp + 0x2c]
sub ebx, ebp
and ebx, 0xffff
mov dword [esp + 0x68], ebx
mov ebp, ecx
movzx ecx, byte [esp + 0x2a]
shl ebx, cl
and ebx, edi
mov ecx, esi
mov esi, dword [esp + 0x68]
mov edi, esi
shr esi, cl
mov ecx, ebp
mov ebp, dword [esp + 0xa4]
and esi, ebp
or ebx, esi
mov ebp, dword [esp + 0x60]
or ebx, ebp
mov ebp, ecx
movzx ecx, byte [esp + 0x2b]
shl edi, cl
mov esi, dword [esp + 0x80]
and edi, esi
mov esi, dword [esp + 0x6c]
or esi, edi
movzx edi, byte [esp + 0x21]
mov ecx, ebp
add ebp, edi
xchg ebp, eax
cmp al, 0x30
xchg ebp, eax
jb 0x639f76
movzx ebp, byte [esp + 0x22]
xchg ebp, eax
movzx eax, al
xchg ebp, eax
cmp ebp, 0x108
ja 0x63a032
lea edi, [ebp - 0x108]
xchg edi, ebx
neg ebx
xchg edi, ebx
mov dword [esp + 0x38], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and ebp, edi
mov edi, dword [esp + 0x38]
cmp edi, 7
jbe 0x63a026
mov dword [esp + 0x64], ebx
mov dword [esp + 0x30], esi
mov edi, dword [esp + 0xdc]
xchg esi, eax
mov byte [edi + ebp + 0x34], al
xchg esi, eax
shr esi, 8
shl ebx, 0x18
or esi, ebx
xchg esi, eax
mov byte [edi + ebp + 0x35], al
xchg esi, eax
mov ebx, dword [esp + 0x64]
shl ebx, 0x10
mov esi, dword [esp + 0x30]
shr esi, 0x10
or esi, ebx
xchg esi, eax
mov byte [edi + ebp + 0x36], al
xchg esi, eax
mov ebx, dword [esp + 0x64]
shl ebx, 8
mov esi, dword [esp + 0x30]
shr esi, 0x18
or ebx, esi
mov byte [edi + ebp + 0x37], bl
mov ebx, dword [esp + 0x64]
mov dword [edi + ebp + 0x38], ebx
movzx ebp, byte [esp + 0x21]
lea ebp, [ecx + ebp - 0x30]
movzx esi, byte [esp + 0x22]
add esi, 6
xchg esi, eax
cmp al, 0xf6
xchg esi, eax
jb 0x639f6f
mov eax, dword [edi + 0x24]
test eax, eax
jne 0x639fce
xchg esi, ebx
movzx eax, bl
xchg esi, ebx
cmp eax, 0x108
ja 0x63a01a
xchg ebp, eax
mov byte [esp + 0x20], al
xchg ebp, eax
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov ecx, dword [ecx + 0x10]
mov dword [esp], edx
lea edx, [edi + 0x34]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x108
call ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xdc]
mov dword [edx + 0x24], ecx
mov ecx, dword [0x900e70]
test ecx, ecx
jne 0x639f47
mov dword [edx + 0x28], eax
jmp 0x639f4f
lea edi, [edx + 0x28]
call fcn.00456ac0
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0xd4]
mov ebx, dword [esp + 0x64]
movzx ebp, byte [esp + 0x20]
mov edi, dword [esp + 0xdc]
xor esi, esi
shr ebx, 0x10
xor ecx, ecx
jmp 0x639f95
mov edi, dword [esp + 0xdc]
mov ecx, ebx
mov ebx, esi
movzx esi, byte [esp + 0x22]
jmp 0x639f95
mov ecx, dword [esp + 0x60]
mov esi, edi
mov edi, dword [esp + 0xdc]
mov dword [esp + 0x60], ecx
mov edi, esi
mov ecx, dword [esp + 0xec]
mov esi, ebx
mov ebx, ebp
mov ebp, dword [esp + 0xdc]
jmp 0x6393e2
add esp, 0xd8
ret
add esp, 0xd8
ret
add esp, 0xd8
ret
add esp, 0xd8
ret
add esp, 0xd8
ret
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0xdc]
mov dword [edx + 8], ecx
mov dword [edx + 0xc], esi
xchg ebp, eax
mov byte [edx + 0x10], al
xchg ebp, eax
movzx ecx, byte [esp + 0x1d]
mov byte [edx + 0x11], cl
cmp eax, 0x100
jne 0x63a013
mov eax, dword [esp + 0xec]
mov eax, dword [eax + 0x400]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.00637c30
add esp, 0xd8
ret
mov ecx, eax
mov edx, 0x108
call fcn.00456b60
mov eax, 7
mov ecx, edi
call fcn.00456b40
mov eax, ebp
mov ecx, 0x108
call fcn.00456ba0
mov ecx, eax
mov edx, 0x108
call fcn.00456b60
mov eax, 7
mov ecx, esi
call fcn.00456b40
mov eax, ebp
mov ecx, 0x108
call fcn.00456ba0
mov ecx, eax
mov edx, 0x108
call fcn.00456b60
mov eax, 7
mov ecx, edi
call fcn.00456b40
mov eax, esi
mov ecx, 0x108
call fcn.00456ba0
mov ecx, eax
mov edx, 0x108
call fcn.00456b60
mov eax, 7
mov ecx, ebp
call fcn.00456b40
mov eax, ebx
mov ecx, 0x108
call fcn.00456ba0
mov ecx, eax
mov edx, 0x108
call fcn.00456b60
mov eax, 7
mov ecx, ebp
call fcn.00456b40
mov eax, ebx
mov ecx, 0x108
call fcn.00456ba0
mov ecx, 0x20
mov edx, edi
call fcn.00456b80
mov eax, 0x101
call fcn.00456ba0
mov ecx, 0x20
mov edx, edi
call fcn.00456b80
mov ecx, 0x100
call fcn.00456b80
nop
call fcn.00455690
jmp fcn.006392e0