Function at 0x482838
Capabilities:
Access peb ldr_data
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc8
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 4], eax
lea esi, [ebp - 4]
xor eax, eax
push ebp
push 0x4836db
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [esi]
cmp dword [eax + 0xcc], 0
setne byte [ebp - 0xb]
mov eax, dword [esi]
mov edx, dword [esi]
mov ecx, dword [edx + 8]
mov dword [eax + 0x10], ecx
mov ecx, dword [edx + 0xc]
mov dword [eax + 0x14], ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
cdq
mov ecx, dword [esi]
add eax, dword [ecx + 0x98]
adc edx, dword [ecx + 0x9c]
mov ecx, dword [esi]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
mov eax, dword [esi]
mov edx, dword [esi]
mov ecx, dword [edx + 0x20]
mov dword [eax + 0x28], ecx
mov ecx, dword [edx + 0x24]
mov dword [eax + 0x2c], ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
cdq
mov ecx, dword [esi]
add eax, dword [ecx + 0x98]
adc edx, dword [ecx + 0x9c]
mov ecx, dword [esi]
mov dword [ecx + 0x38], eax
mov dword [ecx + 0x3c], edx
mov eax, dword [esi]
mov dword [eax + 0x4c], 0xffffffff
mov eax, dword [esi]
mov dword [eax + 0x50], 0xffffffff
mov eax, dword [esi]
xor edx, edx
mov dword [eax + 0x54], edx
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x88]
jle 0x482905
xor edi, edi
jmp 0x4836b3
mov edx, dword [esi]
cmp dword [edx + 0x60], 0
jne 0x482918
mov edx, dword [esi]
mov edx, dword [edx + 0x74]
mov bl, byte [edx + eax - 1]
jmp 0x48292a
mov edx, eax
mov eax, dword [esi]
call fcn.00483f40
mov ebx, eax
mov eax, dword [esi]
call fcn.00483f84
mov eax, dword [esi]
mov dword [eax + 0x50], 0xffffffff
mov eax, dword [esi]
xor edx, edx
mov dword [eax + 0x54], edx
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
mov dword [edx + 0x4c], eax
mov eax, ebx
sub al, 9
je 0x482a04
dec al
je 0x4829cf
sub al, 3
je 0x48297c
sub al, 0x13
jne 0x482a22
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov eax, dword [esi]
call fcn.00483f40
mov ebx, eax
jmp 0x482947
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov eax, dword [esi]
call fcn.00483f40
mov ebx, eax
cmp bl, 0xa
jne 0x4829b3
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov eax, dword [esi]
call fcn.00483f40
mov ebx, eax
mov eax, dword [esi]
add dword [eax + 0x20], 1
adc dword [eax + 0x24], 0
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
mov dword [edx + 0x30], eax
jmp 0x482947
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov eax, dword [esi]
call fcn.00483f40
mov ebx, eax
mov eax, dword [esi]
add dword [eax + 0x20], 1
adc dword [eax + 0x24], 0
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
mov dword [edx + 0x30], eax
jmp 0x482947
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov eax, dword [esi]
call fcn.00483f40
mov ebx, eax
jmp 0x482947
mov eax, dword [esi]
mov eax, dword [eax + 0x4c]
mov edx, dword [esi]
mov edx, dword [edx + 0x8c]
cmp eax, edx
jge 0x482a42
mov ecx, edx
sub ecx, eax
mov edx, eax
mov eax, dword [esi]
call fcn.00484038
jmp 0x482a4b
mov eax, dword [esi]
mov dword [eax + 0x4c], 0xffffffff
mov eax, dword [esi]
cmp byte [eax + 0x18], 0
jne 0x482a65
mov eax, dword [esi]
cmp dword [eax + 0x54], 0
je 0x482a65
mov edi, 0xffffff95
jmp 0x4836b3
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x88]
jle 0x482a7e
xor edi, edi
jmp 0x4836b3
mov eax, dword [esi]
mov dword [eax + 0x50], 0xffffffff
mov eax, dword [esi]
xor edx, edx
mov dword [eax + 0x54], edx
mov byte [ebp - 9], 0
mov eax, dword [esi]
cmp byte [eax + 0x1a], 0
jne 0x482b0f
mov eax, dword [esi]
mov ecx, dword [eax + 0x8c]
mov edx, ebx
mov eax, dword [esi]
mov edi, dword [eax]
call dword [edi + 0x24]
test al, al
je 0x482b0f
mov byte [ebp - 9], 1
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
mov dword [edx + 0x4c], eax
jmp 0x482adb
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov eax, dword [esi]
call fcn.00483f40
mov ebx, eax
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x88]
jg 0x482af7
cmp bl, 0xd
je 0x482af7
cmp bl, 0xa
jne 0x482ac2
mov edx, dword [esi]
mov ecx, dword [edx + 0x8c]
mov eax, dword [esi]
mov eax, dword [eax + 0x4c]
sub ecx, eax
mov edx, eax
mov eax, dword [esi]
call fcn.00484038
push ebp
mov eax, ebx
call fcn.004827b4
pop ecx
test al, al
je 0x482c62
mov byte [ebp - 9], 1
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x88]
jg 0x482c62
mov edx, dword [esi]
mov dword [edx + 0x4c], eax
jmp 0x482c34
mov eax, ebx
sub al, 0xa
je 0x482ba5
sub al, 3
jne 0x482bd7
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov eax, dword [esi]
call fcn.00483f40
mov ebx, eax
cmp bl, 0xa
jne 0x482b89
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov eax, dword [esi]
call fcn.00483f40
mov ebx, eax
mov eax, dword [esi]
add dword [eax + 0x20], 1
adc dword [eax + 0x24], 0
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
mov dword [edx + 0x30], eax
jmp 0x482c34
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov eax, dword [esi]
call fcn.00483f40
mov ebx, eax
mov eax, dword [esi]
add dword [eax + 0x20], 1
adc dword [eax + 0x24], 0
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
mov dword [edx + 0x30], eax
jmp 0x482c34
xor edi, edi
mov eax, dword [esi]
mov eax, dword [eax + 0x48]
call fcn.004046ac
mov dword [ebp - 8], eax
jmp 0x482be9
inc edi
cmp edi, dword [ebp - 8]
jge 0x482c09
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
add edx, edi
mov eax, dword [esi]
call fcn.00483f40
mov edx, dword [esi]
mov edx, dword [edx + 0x48]
cmp al, byte [edx + edi]
je 0x482be8
cmp edi, dword [ebp - 8]
jne 0x482c1b
mov eax, dword [esi]
mov edx, dword [ebp - 8]
add dword [eax + 0x8c], edx
jmp 0x482c4a
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov eax, dword [esi]
call fcn.00483f40
mov ebx, eax
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x88]
jle 0x482b44
mov edx, dword [esi]
mov ecx, dword [edx + 0x8c]
mov eax, dword [esi]
mov eax, dword [eax + 0x4c]
sub ecx, eax
mov edx, eax
mov eax, dword [esi]
call fcn.00484038
mov eax, dword [esi]
mov al, byte [eax + 0x19]
xor al, 1
and al, byte [ebp - 9]
je 0x482c78
mov edi, 0xffffff94
jmp 0x4836b3
cmp byte [ebp - 9], 0
jne 0x4828ea
mov eax, dword [esi]
mov dword [eax + 0x50], 0xffffffff
mov eax, dword [esi]
xor edx, edx
mov dword [eax + 0x54], edx
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 8]
test al, al
jne 0x482ca8
cmp bl, 0x5f
jne 0x482f5d
mov edi, 0xffffff99
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
mov dword [edx + 0x4c], eax
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0xb], 0
je 0x482d18
mov edx, 0x4836ec
mov eax, ebx
call fcn.0047f89c
test al, al
je 0x482cd6
sub bl, 0x20
mov eax, dword [esi]
mov eax, dword [eax + 0xcc]
call fcn.004046ac
mov edx, dword [esi]
mov edx, dword [edx + 0x8c]
mov ecx, dword [esi]
sub edx, dword [ecx + 0x4c]
inc edx
cmp eax, edx
jl 0x482d0f
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
sub eax, dword [edx + 0x4c]
mov edx, dword [esi]
mov edx, dword [edx + 0xcc]
cmp bl, byte [edx + eax]
je 0x482d13
xor eax, eax
jmp 0x482d15
mov al, 1
mov byte [ebp - 0xb], al
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov eax, dword [esi]
call fcn.00483f40
mov ebx, eax
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 8]
test al, al
jne 0x482cbd
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0xc]
test al, al
jne 0x482cbd
cmp bl, 0x5f
je 0x482cbd
mov eax, dword [esi]
cmp byte [eax + 0x84], 0
je 0x482f35
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
sub eax, dword [edx + 0x4c]
dec eax
jne 0x482f35
cmp byte [ebp - 0x19], 0x71
je 0x482d8f
cmp byte [ebp - 0x19], 0x51
jne 0x482f35
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x10]
test al, al
je 0x482f35
mov edi, 0xffffff96
mov byte [ebp - 0xa], bl
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x88]
jg 0x482ed7
mov edx, eax
mov eax, dword [esi]
call fcn.00483f40
mov byte [ebp - 0x19], al
mov al, byte [ebp - 0x19]
sub al, 0x28
je 0x482df9
sub al, 0x14
je 0x482df3
sub al, 0x1f
je 0x482de7
sub al, 0x20
je 0x482ded
jmp 0x482dfd
mov byte [ebp - 0x19], 0x5d
jmp 0x482dfd
mov byte [ebp - 0x19], 0x7d
jmp 0x482dfd
mov byte [ebp - 0x19], 0x3e
jmp 0x482dfd
mov byte [ebp - 0x19], 0x29
mov byte [ebp - 0x1a], 0
mov eax, dword [esi]
inc dword [eax + 0x8c]
jmp 0x482ec1
mov edx, eax
mov eax, dword [esi]
call fcn.00483f40
mov ebx, eax
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, ebx
sub al, 0xa
je 0x482e7f
sub al, 3
jne 0x482eaf
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov eax, dword [esi]
call fcn.00483f40
mov ebx, eax
cmp bl, 0xa
jne 0x482e66
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov eax, dword [esi]
call fcn.00483f40
mov ebx, eax
mov eax, dword [esi]
add dword [eax + 0x20], 1
adc dword [eax + 0x24], 0
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
mov dword [edx + 0x30], eax
jmp 0x482eaf
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov eax, dword [esi]
call fcn.00483f40
mov ebx, eax
mov eax, dword [esi]
add dword [eax + 0x20], 1
adc dword [eax + 0x24], 0
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
mov dword [edx + 0x30], eax
cmp byte [ebp - 0x1a], 0
je 0x482eba
cmp bl, byte [ebp - 0xa]
je 0x482ed7
cmp bl, byte [ebp - 0x19]
sete byte [ebp - 0x1a]
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x88]
jle 0x482e0e
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
je 0x482efc
mov edx, dword [esi]
mov ecx, dword [edx + 0x8c]
mov eax, dword [esi]
mov eax, dword [eax + 0x4c]
sub ecx, eax
mov edx, eax
mov eax, dword [esi]
call fcn.00484038
jmp 0x483697
mov edx, dword [esi]
mov edx, dword [edx + 0x8c]
mov eax, dword [esi]
mov eax, dword [eax + 0x4c]
sub edx, eax
cmp edx, 5
jle 0x483697
mov edx, dword [esi]
mov ecx, dword [edx + 0x8c]
mov edx, dword [esi]
sub ecx, dword [edx + 0x4c]
sub ecx, 5
mov edx, eax
add edx, 3
mov eax, dword [esi]
call fcn.00484038
jmp 0x483697
mov eax, dword [esi]
mov dl, byte [ebp - 0xb]
mov byte [eax + 0xd0], dl
mov edx, dword [esi]
mov ecx, dword [edx + 0x8c]
mov eax, dword [esi]
mov eax, dword [eax + 0x4c]
sub ecx, eax
mov edx, eax
mov eax, dword [esi]
call fcn.00484038
jmp 0x483697
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0xc]
test al, al
je 0x4830be
mov edi, 0xffffff97
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov dword [ebp - 0x18], eax
mov edx, dword [esi]
mov dword [edx + 0x4c], eax
cmp byte [ebp - 0xb], 0
je 0x482fc7
mov eax, dword [esi]
mov eax, dword [eax + 0xcc]
call fcn.004046ac
mov edx, dword [esi]
mov edx, dword [edx + 0x8c]
sub edx, dword [ebp - 0x18]
inc edx
cmp eax, edx
jl 0x482fbe
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
sub eax, dword [ebp - 0x18]
mov edx, dword [esi]
mov edx, dword [edx + 0xcc]
cmp bl, byte [edx + eax]
je 0x482fc2
xor eax, eax
jmp 0x482fc4
mov al, 1
mov byte [ebp - 0xb], al
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov eax, dword [esi]
call fcn.00483f40
mov ebx, eax
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0xc]
test al, al
jne 0x482f83
mov edx, dword [esi]
mov ecx, dword [edx + 0x8c]
mov eax, dword [esi]
mov eax, dword [eax + 0x4c]
sub ecx, eax
mov edx, eax
mov eax, dword [esi]
call fcn.00484038
mov eax, dword [esi]
mov dl, byte [ebp - 0xb]
mov byte [eax + 0xd0], dl
mov eax, dword [esi]
cmp bl, byte [eax + 0x42]
jne 0x483697
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
inc eax
mov edx, dword [esi]
cmp eax, dword [edx + 0x88]
jg 0x483697
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
inc edx
mov eax, dword [esi]
call fcn.00483f40
mov edx, eax
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0xc]
test al, al
je 0x483697
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
mov dword [edx + 0x4c], eax
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov eax, dword [esi]
call fcn.00483f40
mov ebx, eax
jmp 0x483094
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov eax, dword [esi]
call fcn.00483f40
mov ebx, eax
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0xc]
test al, al
jne 0x48307b
mov edx, dword [esi]
mov ecx, dword [edx + 0x8c]
mov eax, dword [esi]
mov eax, dword [eax + 0x4c]
sub ecx, eax
mov edx, eax
mov eax, dword [esi]
call fcn.00484038
jmp 0x483697
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 4]
test al, al
je 0x48362c
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x10]
test al, al
je 0x483180
mov edi, 0xffffff96
mov byte [ebp - 0xa], bl
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
je 0x483104
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov ecx, 1
mov eax, dword [esi]
call fcn.00484038
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
mov dword [edx + 0x4c], eax
mov dl, byte [ebp - 0xa]
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov eax, dword [esi]
mov eax, dword [eax + 0x4c]
mov edx, dword [esi]
mov edx, dword [edx + 0x8c]
cmp eax, edx
jge 0x483141
mov ecx, edx
sub ecx, eax
mov edx, eax
mov eax, dword [esi]
call fcn.00484038
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x88]
jg 0x483697
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
je 0x483173
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov ecx, 1
mov eax, dword [esi]
call fcn.00484038
mov eax, dword [esi]
inc dword [eax + 0x8c]
jmp 0x483697
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x20]
test al, al
je 0x48322b
mov edi, 0xffffff99
mov byte [ebp - 0xa], bl
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov ecx, 1
mov eax, dword [esi]
call fcn.00484038
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
mov dword [edx + 0x4c], eax
mov dl, byte [ebp - 0xa]
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov eax, dword [esi]
mov eax, dword [eax + 0x4c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x8c]
jge 0x4831f4
mov eax, dword [esi]
mov ecx, dword [eax + 0x8c]
mov eax, dword [esi]
sub ecx, dword [eax + 0x4c]
mov eax, dword [esi]
mov edx, dword [eax + 0x4c]
mov eax, dword [esi]
call fcn.00484038
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x88]
jg 0x483697
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov ecx, 1
mov eax, dword [esi]
call fcn.00484038
mov eax, dword [esi]
inc dword [eax + 0x8c]
jmp 0x483697
mov eax, dword [esi]
cmp byte [eax + 0x85], 0
je 0x48349b
cmp bl, 0x24
jne 0x48349b
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x88]
jge 0x48349b
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
inc edx
mov eax, dword [esi]
call fcn.00483f40
mov edx, eax
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0xc]
test al, al
jne 0x48349b
mov eax, dword [esi]
mov edi, dword [eax + 0x8c]
cmp edi, 1
je 0x4832a3
mov edx, edi
dec edx
mov eax, dword [esi]
call fcn.00483f40
mov edx, 0x48370c
call fcn.0047f89c
test al, al
je 0x48349b
mov edi, 0xffffff96
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
je 0x4832c4
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov ecx, 1
mov eax, dword [esi]
call fcn.00484038
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
mov dword [edx + 0x4c], eax
mov dl, 0x24
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x1c]
lea eax, [ebp - 0x20]
push eax
mov eax, dword [esi]
mov ecx, dword [eax + 0x8c]
mov eax, dword [esi]
sub ecx, dword [eax + 0x4c]
mov eax, dword [esi]
mov edx, dword [eax + 0x4c]
mov eax, dword [esi]
call fcn.0048404c
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
je 0x48332f
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x4c]
jle 0x48332f
mov eax, dword [esi]
mov ecx, dword [eax + 0x8c]
mov eax, dword [esi]
sub ecx, dword [eax + 0x4c]
mov eax, dword [esi]
mov edx, dword [eax + 0x4c]
mov eax, dword [esi]
call fcn.00484038
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x88]
jg 0x483697
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
je 0x483361
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov ecx, 1
mov eax, dword [esi]
call fcn.00484038
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
mov dword [edx + 0x4c], eax
mov dl, 0x24
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov eax, dword [esi]
mov eax, dword [eax + 0x4c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x8c]
jge 0x4833a1
mov edx, dword [esi]
mov ecx, dword [edx + 0x8c]
sub ecx, eax
mov edx, eax
mov eax, dword [esi]
call fcn.00484038
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov dword [ebp - 0x28], eax
mov edx, dword [esi]
cmp eax, dword [edx + 0x88]
jg 0x483427
mov edx, eax
mov ecx, 1
mov eax, dword [esi]
call fcn.00484038
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
mov dword [edx + 0x4c], eax
mov dl, 0x24
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x1c]
lea eax, [ebp - 0x24]
push eax
mov eax, dword [esi]
mov ecx, dword [eax + 0x8c]
mov eax, dword [esi]
sub ecx, dword [eax + 0x4c]
mov eax, dword [esi]
mov edx, dword [eax + 0x4c]
mov eax, dword [esi]
call fcn.0048404c
mov eax, dword [esi]
mov eax, dword [eax + 0x4c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x8c]
jge 0x483427
mov eax, dword [esi]
mov ecx, dword [eax + 0x8c]
mov eax, dword [esi]
sub ecx, dword [eax + 0x4c]
mov eax, dword [esi]
mov edx, dword [eax + 0x4c]
mov eax, dword [esi]
call fcn.00484038
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
call fcn.004047f8
je 0x48344a
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x88]
jle 0x483369
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x88]
jg 0x483697
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
je 0x48347e
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov ecx, 1
mov eax, dword [esi]
call fcn.00484038
jmp 0x48348e
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
sub eax, dword [ebp - 0x28]
mov edx, dword [esi]
sub dword [edx + 0x54], eax
mov eax, dword [esi]
inc dword [eax + 0x8c]
jmp 0x483697
mov edi, 0xffffff9a
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
inc eax
mov dword [ebp - 0x18], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov edx, dword [esi]
mov dword [edx + 0x50], eax
mov eax, dword [esi]
xor edx, edx
mov dword [eax + 0x54], edx
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov dword [ebp - 0x14], eax
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov ecx, 1
mov eax, dword [esi]
call fcn.00484038
mov eax, dword [esi]
inc dword [eax + 0x8c]
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov eax, dword [esi]
call fcn.00483f40
mov ebx, eax
mov eax, dword [esi]
mov edx, dword [eax + 0x50]
mov eax, dword [esi]
call fcn.00483f40
mov edx, dword [esi]
and eax, 0xff
bt dword [edx + 0xa4], eax
jb 0x48351d
mov dword [ebp - 0x10], 0xffffffff
jmp 0x48353a
mov eax, dword [esi]
mov eax, dword [eax + 0xa0]
push eax
mov eax, dword [esi]
mov ecx, dword [eax + 0x54]
mov eax, dword [esi]
mov edx, dword [eax + 0x50]
mov eax, dword [esi]
call fcn.00482588
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
je 0x483597
lea ecx, [ebp - 0x2c]
mov eax, dword [esi]
mov eax, dword [eax + 0xa0]
mov edx, dword [ebp - 0x10]
call fcn.0047eba4
mov edx, dword [ebp - 0x2c]
mov eax, dword [esi]
add eax, 0x5c
call fcn.00404430
mov eax, dword [esi]
mov eax, dword [eax + 0x8c]
mov dword [ebp - 0x18], eax
mov eax, dword [esi]
mov eax, dword [eax + 0xa0]
mov edx, dword [ebp - 0x10]
call fcn.0047ebc4
mov edi, eax
test edi, edi
jg 0x48359c
mov ecx, 0x419
mov edx, 0x483734
mov eax, 0x483770
call fcn.00404338
jmp 0x48359c
mov eax, dword [esi]
dec dword [eax + 0x54]
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 4]
test al, al
jne 0x4834cb
cmp edi, 0xffffff9a
jne 0x4835fc
mov eax, dword [esi]
mov edx, dword [ebp - 0x14]
mov dword [eax + 0x50], edx
mov eax, dword [esi]
mov dword [eax + 0x54], 1
cmp byte [ebp - 0xb], 0
je 0x48361f
mov eax, dword [esi]
mov eax, dword [eax + 0xcc]
call fcn.004046ac
dec eax
jne 0x48361f
mov eax, dword [esi]
mov edx, dword [eax + 0x50]
mov eax, dword [esi]
call fcn.00483f40
mov edx, dword [esi]
mov edx, dword [edx + 0xcc]
cmp al, byte [edx]
sete al
mov edx, dword [esi]
mov byte [edx + 0xd0], al
jmp 0x48361f
cmp byte [ebp - 0xb], 0
je 0x48361f
mov eax, dword [esi]
mov eax, dword [eax + 0xcc]
mov edx, dword [esi]
mov edx, dword [edx + 0x5c]
call fcn.004047f8
sete al
mov edx, dword [esi]
mov byte [edx + 0xd0], al
mov eax, dword [esi]
mov edx, dword [ebp - 0x18]
mov dword [eax + 0x8c], edx
jmp 0x483697
push 0x48378c
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov eax, dword [esi]
call fcn.00483f40
mov edx, eax
lea eax, [ebp - 0x34]
call fcn.004045c4
push dword [ebp - 0x34]
push 0x4837b4
mov eax, dword [esi]
mov edx, dword [eax + 0x8c]
mov eax, dword [esi]
call fcn.00483f40
and eax, 0xff
lea ecx, [ebp - 0x38]
mov edx, 4
call fcn.00409400
push dword [ebp - 0x38]
lea eax, [ebp - 0x30]
mov edx, 4
call fcn.0040476c
mov ecx, dword [ebp - 0x30]
mov dl, 1
mov eax, dword [0x407d88]
call fcn.0040da34
call fcn.00403d74
cmp edi, 0x80000001
jne 0x4836b3
mov ecx, 0x432
mov edx, 0x483734
mov eax, 0x483770
call fcn.00404338
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4836e2
lea eax, [ebp - 0x38]
mov edx, 4
call fcn.00404400
lea eax, [ebp - 0x24]
mov edx, 2
call fcn.00404400
ret