Function at 0x4852f8
Capabilities:
Access peb ldr_data
Check os version
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc4
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 4], eax
lea esi, [ebp - 4]
xor eax, eax
push ebp
push 0x485e6a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [esi]
cmp dword [eax + 0x9c], 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 + 0x7c]
cdq
mov ecx, dword [esi]
add eax, dword [ecx + 0x88]
adc edx, dword [ecx + 0x8c]
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 + 0x88]
adc edx, dword [ecx + 0x8c]
mov ecx, dword [esi]
mov dword [ecx + 0x38], eax
mov dword [ecx + 0x3c], edx
mov eax, dword [esi]
mov dword [eax + 0x44], 0xffffffff
mov eax, dword [esi]
mov dword [eax + 0x48], 0xffffffff
mov eax, dword [esi]
xor edx, edx
mov dword [eax + 0x4c], edx
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x78]
jle 0x4853bf
xor edi, edi
jmp 0x485e4f
mov edx, dword [esi]
cmp dword [edx + 0x50], 0
jne 0x4853d2
mov edx, dword [esi]
mov edx, dword [edx + 0x64]
mov bl, byte [edx + eax - 1]
jmp 0x4853e4
mov edx, eax
mov eax, dword [esi]
call fcn.00486700
mov ebx, eax
mov eax, dword [esi]
call fcn.00486740
mov eax, dword [esi]
mov dword [eax + 0x48], 0xffffffff
mov eax, dword [esi]
xor edx, edx
mov dword [eax + 0x4c], edx
jmp 0x485465
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [esi]
call fcn.0048680c
cmp bl, 0xd
je 0x485411
cmp bl, 0xa
jne 0x485452
cmp bl, 0xd
jne 0x48543d
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
inc edx
mov eax, dword [esi]
call fcn.00486700
cmp al, 0xa
jne 0x48543d
mov eax, dword [esi]
inc dword [eax + 0x7c]
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [esi]
call fcn.0048680c
mov eax, dword [esi]
add dword [eax + 0x20], 1
adc dword [eax + 0x24], 0
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
inc eax
mov edx, dword [esi]
mov dword [edx + 0x30], eax
mov eax, dword [esi]
inc dword [eax + 0x7c]
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov eax, dword [esi]
call fcn.00486700
mov ebx, eax
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 4]
test al, al
jne 0x4853f6
mov eax, dword [esi]
cmp byte [eax + 0x18], 0
jne 0x48548c
mov eax, dword [esi]
cmp dword [eax + 0x4c], 0
je 0x48548c
mov edi, 0xffffff95
jmp 0x485e4f
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x78]
jle 0x48549f
xor edi, edi
jmp 0x485e4f
mov eax, dword [esi]
mov dword [eax + 0x48], 0xffffffff
mov eax, dword [esi]
xor edx, edx
mov dword [eax + 0x4c], edx
mov byte [ebp - 9], 0
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x28]
test al, al
je 0x485511
mov byte [ebp - 9], 1
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
mov dword [edx + 0x44], eax
jmp 0x4854e6
mov eax, dword [esi]
inc dword [eax + 0x7c]
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov eax, dword [esi]
call fcn.00486700
mov ebx, eax
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x78]
jg 0x4854fc
cmp bl, 0xd
je 0x4854fc
cmp bl, 0xa
jne 0x4854d3
mov edx, dword [esi]
mov ecx, dword [edx + 0x7c]
mov eax, dword [esi]
mov eax, dword [eax + 0x44]
sub ecx, eax
mov edx, eax
mov eax, dword [esi]
call fcn.0048680c
push ebp
call fcn.00485288
pop ecx
test al, al
je 0x4855fa
mov byte [ebp - 9], 1
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x78]
jg 0x4855fa
mov edx, dword [esi]
mov dword [edx + 0x44], eax
jmp 0x4855d5
cmp bl, 0xd
je 0x485548
cmp bl, 0xa
jne 0x48557e
mov eax, dword [esi]
mov ebx, dword [eax + 0x7c]
mov eax, dword [esi]
cmp ebx, dword [eax + 0x78]
jge 0x485567
mov edx, ebx
inc edx
mov eax, dword [esi]
call fcn.00486700
cmp al, 0xa
jne 0x485567
mov eax, dword [esi]
inc dword [eax + 0x7c]
mov eax, dword [esi]
add dword [eax + 0x20], 1
adc dword [eax + 0x24], 0
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
inc eax
mov edx, dword [esi]
mov dword [edx + 0x30], eax
jmp 0x4855c2
xor edi, edi
mov eax, dword [esi]
mov eax, dword [eax + 0xac]
call fcn.00404590
mov dword [ebp - 8], eax
jmp 0x485593
inc edi
cmp edi, dword [ebp - 8]
jge 0x4855b3
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
add edx, edi
mov eax, dword [esi]
call fcn.00486700
mov edx, dword [esi]
mov edx, dword [edx + 0xac]
cmp al, byte [edx + edi]
je 0x485592
cmp edi, dword [ebp - 8]
jne 0x4855c2
mov eax, dword [esi]
mov edx, dword [ebp - 8]
add dword [eax + 0x7c], edx
jmp 0x4855e5
mov eax, dword [esi]
inc dword [eax + 0x7c]
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov eax, dword [esi]
call fcn.00486700
mov ebx, eax
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x78]
jle 0x48553e
mov edx, dword [esi]
mov ecx, dword [edx + 0x7c]
mov eax, dword [esi]
mov eax, dword [eax + 0x44]
sub ecx, eax
mov edx, eax
mov eax, dword [esi]
call fcn.0048680c
mov eax, dword [esi]
mov al, byte [eax + 0x19]
xor al, 1
and al, byte [ebp - 9]
je 0x485610
mov edi, 0xffffff94
jmp 0x485e4f
cmp byte [ebp - 9], 0
jne 0x4853aa
mov eax, dword [esi]
mov dword [eax + 0x48], 0xffffffff
mov eax, dword [esi]
xor edx, edx
mov dword [eax + 0x4c], edx
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 8]
test al, al
je 0x485a9b
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x14]
test al, al
je 0x4856d1
mov edi, 0xffffff96
mov byte [ebp - 0xa], bl
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
je 0x48566d
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [esi]
call fcn.0048680c
mov eax, dword [esi]
inc dword [eax + 0x7c]
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
mov dword [edx + 0x44], eax
mov dl, byte [ebp - 0xa]
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x20]
mov eax, dword [esi]
mov eax, dword [eax + 0x44]
mov edx, dword [esi]
mov edx, dword [edx + 0x7c]
cmp eax, edx
jge 0x4856a1
mov ecx, edx
sub ecx, eax
mov edx, eax
mov eax, dword [esi]
call fcn.0048680c
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x78]
jg 0x485e33
mov edx, dword [esi]
cmp byte [edx + 0x40], 0
je 0x4856c7
mov edx, eax
mov ecx, 1
mov eax, dword [esi]
call fcn.0048680c
mov eax, dword [esi]
inc dword [eax + 0x7c]
jmp 0x485e33
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x24]
test al, al
je 0x485753
mov edi, 0xffffff99
mov byte [ebp - 0xa], bl
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [esi]
call fcn.0048680c
mov eax, dword [esi]
inc dword [eax + 0x7c]
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
mov dword [edx + 0x44], eax
mov dl, byte [ebp - 0xa]
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x20]
mov eax, dword [esi]
mov eax, dword [eax + 0x44]
mov edx, dword [esi]
mov edx, dword [edx + 0x7c]
cmp eax, edx
jge 0x48572b
mov ecx, edx
sub ecx, eax
mov edx, eax
mov eax, dword [esi]
call fcn.0048680c
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x78]
jg 0x485e33
mov edx, eax
mov ecx, 1
mov eax, dword [esi]
call fcn.0048680c
mov eax, dword [esi]
inc dword [eax + 0x7c]
jmp 0x485e33
mov eax, dword [esi]
cmp byte [eax + 0x75], 0
je 0x485939
cmp bl, 0x24
jne 0x485939
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x78]
jge 0x485939
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
inc edx
mov eax, dword [esi]
call fcn.00486700
mov edx, eax
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x10]
test al, al
jne 0x485939
mov edi, 0xffffff96
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
je 0x4857b4
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [esi]
call fcn.0048680c
mov eax, dword [esi]
inc dword [eax + 0x7c]
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
mov dword [edx + 0x44], eax
mov dl, 0x24
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x20]
lea eax, [ebp - 0x24]
push eax
mov eax, dword [esi]
mov ecx, dword [eax + 0x7c]
mov eax, dword [esi]
mov ebx, dword [eax + 0x44]
sub ecx, ebx
mov edx, ebx
mov eax, dword [esi]
call fcn.00486820
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
je 0x48580f
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x44]
jle 0x48580f
mov eax, dword [esi]
mov ecx, dword [eax + 0x7c]
mov eax, dword [esi]
sub ecx, dword [eax + 0x44]
mov eax, dword [esi]
mov edx, dword [eax + 0x44]
mov eax, dword [esi]
call fcn.0048680c
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x78]
jg 0x485e33
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
je 0x485838
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [esi]
call fcn.0048680c
mov eax, dword [esi]
inc dword [eax + 0x7c]
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
mov dword [edx + 0x44], eax
mov dl, 0x24
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x20]
mov eax, dword [esi]
mov eax, dword [eax + 0x44]
mov edx, dword [esi]
mov edx, dword [edx + 0x7c]
cmp eax, edx
jge 0x48586b
mov ecx, edx
sub ecx, eax
mov edx, eax
mov eax, dword [esi]
call fcn.0048680c
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov ebx, eax
mov edx, dword [esi]
cmp eax, dword [edx + 0x78]
jg 0x4858db
mov edx, eax
mov ecx, 1
mov eax, dword [esi]
call fcn.0048680c
mov eax, dword [esi]
inc dword [eax + 0x7c]
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
mov dword [edx + 0x44], eax
mov dl, 0x24
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x20]
lea eax, [ebp - 0x28]
push eax
mov eax, dword [esi]
mov ecx, dword [eax + 0x7c]
mov eax, dword [esi]
sub ecx, dword [eax + 0x44]
mov eax, dword [esi]
mov edx, dword [eax + 0x44]
mov eax, dword [esi]
call fcn.00486820
mov eax, dword [esi]
mov eax, dword [eax + 0x44]
mov edx, dword [esi]
cmp eax, dword [edx + 0x7c]
jge 0x4858db
mov eax, dword [esi]
mov ecx, dword [eax + 0x7c]
mov eax, dword [esi]
sub ecx, dword [eax + 0x44]
mov eax, dword [esi]
mov edx, dword [eax + 0x44]
mov eax, dword [esi]
call fcn.0048680c
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
call fcn.004046dc
je 0x4858f8
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x78]
jle 0x48583d
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x78]
jg 0x485e33
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
je 0x485923
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [esi]
call fcn.0048680c
jmp 0x48592f
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
sub eax, ebx
mov edx, dword [esi]
sub dword [edx + 0x4c], eax
mov eax, dword [esi]
inc dword [eax + 0x7c]
jmp 0x485e33
mov edi, 0xffffff9a
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
mov dword [edx + 0x48], eax
mov eax, dword [esi]
xor edx, edx
mov dword [eax + 0x4c], edx
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], 1
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [esi]
call fcn.0048680c
mov eax, dword [esi]
inc dword [eax + 0x7c]
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov eax, dword [esi]
call fcn.00486700
mov ebx, eax
mov eax, dword [esi]
mov eax, dword [eax + 0x90]
push eax
mov eax, dword [esi]
mov ecx, dword [eax + 0x4c]
mov eax, dword [esi]
mov edx, dword [eax + 0x48]
mov eax, dword [esi]
call fcn.0048516c
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
je 0x485a04
lea ecx, [ebp - 0x2c]
mov eax, dword [esi]
mov eax, dword [eax + 0x90]
mov edx, dword [ebp - 0x10]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x2c]
mov eax, dword [esi]
add eax, 0xa4
call fcn.00404314
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x90]
mov edx, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edi, eax
test edi, edi
jg 0x485a09
mov ecx, 0x304
mov edx, 0x485e84
mov eax, 0x485ebc
call fcn.0040421c
jmp 0x485a09
mov eax, dword [esi]
dec dword [eax + 0x4c]
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 8]
test al, al
jne 0x485967
cmp edi, 0xffffff9a
jne 0x485a68
mov eax, dword [esi]
mov edx, dword [ebp - 0x14]
mov dword [eax + 0x48], edx
mov eax, dword [esi]
mov edx, dword [ebp - 0x18]
mov dword [eax + 0x4c], edx
cmp byte [ebp - 0xb], 0
je 0x485a8e
mov eax, dword [esi]
mov eax, dword [eax + 0x9c]
call fcn.00404590
dec eax
jne 0x485a8e
mov eax, dword [esi]
mov edx, dword [eax + 0x48]
mov eax, dword [esi]
call fcn.00486700
mov edx, dword [esi]
mov edx, dword [edx + 0x9c]
cmp al, byte [edx]
sete al
mov edx, dword [esi]
mov byte [edx + 0xa0], al
jmp 0x485a8e
cmp byte [ebp - 0xb], 0
je 0x485a8e
mov eax, dword [esi]
mov eax, dword [eax + 0x9c]
mov edx, dword [esi]
mov edx, dword [edx + 0xa4]
call fcn.004046dc
sete al
mov edx, dword [esi]
mov byte [edx + 0xa0], al
mov eax, dword [esi]
mov edx, dword [ebp - 0x1c]
mov dword [eax + 0x7c], edx
jmp 0x485e33
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0xc]
test al, al
jne 0x485ab1
cmp bl, 0x5f
jne 0x485c8e
mov edi, 0xffffff99
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
mov dword [edx + 0x44], eax
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0xb], 0
je 0x485b12
cmp bl, 0x61
jb 0x485ad6
cmp bl, 0x7a
ja 0x485ad6
sub bl, 0x20
mov eax, dword [esi]
mov eax, dword [eax + 0x9c]
call fcn.00404590
mov edx, dword [esi]
mov edx, dword [edx + 0x7c]
mov ecx, dword [esi]
sub edx, dword [ecx + 0x44]
inc edx
cmp eax, edx
jl 0x485b09
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
sub eax, dword [edx + 0x44]
mov edx, dword [esi]
mov edx, dword [edx + 0x9c]
cmp bl, byte [edx + eax]
je 0x485b0d
xor eax, eax
jmp 0x485b0f
mov al, 1
mov byte [ebp - 0xb], al
mov eax, dword [esi]
inc dword [eax + 0x7c]
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov eax, dword [esi]
call fcn.00486700
mov ebx, eax
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0xc]
test al, al
jne 0x485ac3
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x10]
test al, al
jne 0x485ac3
cmp bl, 0x5f
je 0x485ac3
mov eax, dword [esi]
cmp byte [eax + 0x74], 0
je 0x485c69
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
sub eax, dword [edx + 0x44]
dec eax
jne 0x485c69
cmp byte [ebp - 0x1d], 0x71
je 0x485b75
cmp byte [ebp - 0x1d], 0x51
jne 0x485c69
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x14]
test al, al
je 0x485c69
mov edi, 0xffffff96
mov byte [ebp - 0xa], bl
mov eax, dword [esi]
inc dword [eax + 0x7c]
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x78]
jg 0x485c12
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov eax, dword [esi]
call fcn.00486700
mov byte [ebp - 0x1d], al
mov al, byte [ebp - 0x1d]
sub al, 0x28
je 0x485bd5
sub al, 0x14
je 0x485bcf
sub al, 0x1f
je 0x485bc3
sub al, 0x20
je 0x485bc9
jmp 0x485bd9
mov byte [ebp - 0x1d], 0x5d
jmp 0x485bd9
mov byte [ebp - 0x1d], 0x7d
jmp 0x485bd9
mov byte [ebp - 0x1d], 0x3e
jmp 0x485bd9
mov byte [ebp - 0x1d], 0x29
mov byte [ebp - 0x1e], 0
mov eax, dword [esi]
inc dword [eax + 0x7c]
jmp 0x485c06
mov edx, eax
mov eax, dword [esi]
call fcn.00486700
mov ebx, eax
mov eax, dword [esi]
inc dword [eax + 0x7c]
cmp byte [ebp - 0x1e], 0
je 0x485bff
cmp bl, byte [ebp - 0xa]
je 0x485c12
cmp bl, byte [ebp - 0x1d]
sete byte [ebp - 0x1e]
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
cmp eax, dword [edx + 0x78]
jle 0x485be4
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
je 0x485c35
mov eax, dword [esi]
mov ecx, dword [eax + 0x7c]
mov eax, dword [esi]
sub ecx, dword [eax + 0x44]
mov eax, dword [esi]
mov edx, dword [eax + 0x44]
mov eax, dword [esi]
call fcn.0048680c
jmp 0x485e33
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov edx, dword [esi]
sub eax, dword [edx + 0x44]
cmp eax, 5
jle 0x485e33
mov eax, dword [esi]
mov ecx, dword [eax + 0x7c]
mov eax, dword [esi]
sub ecx, dword [eax + 0x44]
sub ecx, 5
mov eax, dword [esi]
mov edx, dword [eax + 0x44]
add edx, 3
mov eax, dword [esi]
call fcn.0048680c
jmp 0x485e33
mov eax, dword [esi]
mov dl, byte [ebp - 0xb]
mov byte [eax + 0xa0], dl
mov edx, dword [esi]
mov ecx, dword [edx + 0x7c]
mov eax, dword [esi]
mov eax, dword [eax + 0x44]
sub ecx, eax
mov edx, eax
mov eax, dword [esi]
call fcn.0048680c
jmp 0x485e33
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x10]
test al, al
je 0x485dce
mov edi, 0xffffff97
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [esi]
call fcn.0048680c
cmp byte [ebp - 0xb], 0
je 0x485cfb
mov eax, dword [esi]
mov eax, dword [eax + 0x9c]
call fcn.00404590
mov edx, dword [esi]
mov edx, dword [edx + 0x7c]
sub edx, dword [ebp - 0x1c]
inc edx
cmp eax, edx
jl 0x485cf2
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
sub eax, dword [ebp - 0x1c]
mov edx, dword [esi]
mov edx, dword [edx + 0x9c]
cmp bl, byte [edx + eax]
je 0x485cf6
xor eax, eax
jmp 0x485cf8
mov al, 1
mov byte [ebp - 0xb], al
mov eax, dword [esi]
inc dword [eax + 0x7c]
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov eax, dword [esi]
call fcn.00486700
mov ebx, eax
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x10]
test al, al
jne 0x485cac
mov eax, dword [esi]
mov dl, byte [ebp - 0xb]
mov byte [eax + 0xa0], dl
lea eax, [ebp - 0x30]
mov edx, ebx
call fcn.004044a8
mov eax, dword [ebp - 0x30]
mov edx, dword [esi]
mov edx, dword [edx + 0xb0]
call fcn.004046dc
jne 0x485e33
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
inc eax
mov edx, dword [esi]
cmp eax, dword [edx + 0x78]
jg 0x485e33
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
inc edx
mov eax, dword [esi]
call fcn.00486700
mov edx, eax
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x10]
test al, al
je 0x485e33
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [esi]
call fcn.0048680c
mov eax, dword [esi]
inc dword [eax + 0x7c]
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov eax, dword [esi]
call fcn.00486700
mov ebx, eax
jmp 0x485dbf
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [esi]
call fcn.0048680c
mov eax, dword [esi]
inc dword [eax + 0x7c]
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov eax, dword [esi]
call fcn.00486700
mov ebx, eax
mov edx, ebx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x10]
test al, al
jne 0x485d9b
jmp 0x485e33
push 0x485ed8
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov eax, dword [esi]
call fcn.00486700
mov edx, eax
lea eax, [ebp - 0x38]
call fcn.004044a8
push dword [ebp - 0x38]
push 0x485f00
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov eax, dword [esi]
call fcn.00486700
and eax, 0xff
lea ecx, [ebp - 0x3c]
mov edx, 4
call fcn.004090bc
push dword [ebp - 0x3c]
lea eax, [ebp - 0x34]
mov edx, 4
call fcn.00404650
mov ecx, dword [ebp - 0x34]
mov dl, 1
mov eax, dword [0x407c00]
call fcn.0040cf2c
call fcn.00403c58
cmp edi, 0x80000001
jne 0x485e4f
mov ecx, 0x36a
mov edx, 0x485e84
mov eax, 0x485ebc
call fcn.0040421c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x485e71
lea eax, [ebp - 0x3c]
mov edx, 7
call fcn.004042e4
ret