Function at 0x60feb0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x78
push ebx
push ebp
mov ebp, dword [esp + 0x84]
push esi
push edi
push 0x19bf
push 0x69ea48
push 0x10
xor ebx, ebx
push 0x3000
mov dword [esp + 0x50], ebx
call fcn.0061fe40
mov dword [ebp + 0xa4], eax
mov ax, word [ebp + 0x92]
add esp, 0x10
cmp ax, bx
mov dword [ebp + 0xa8], ebx
mov byte [esp + 0x13], bl
jle 0x60ff2f
push 0x19c8
movsx esi, ax
push 0x69ea48
shl esi, 2
push 0x10
push esi
call fcn.0061fe40
mov ecx, esi
mov edx, ecx
mov edi, eax
shr ecx, 2
mov esi, edi
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
add esp, 0x10
and ecx, 3
rep stosb byte es:[edi], al
mov dword [ebp + 0x64], esi
jmp 0x60ff32
mov dword [ebp + 0x64], ebx
cmp word [ebp + 0x94], 0
jle 0x60ff7a
xor edi, edi
mov edi, edi
mov esi, dword [ebp + 0x78]
mov eax, dword [ebp + 0x14]
add esi, edi
test eax, eax
je 0x60ff56
mov ecx, dword [esi + 8]
test ecx, ecx
jne 0x60ff6b
push eax
jmp 0x60ff5f
mov eax, dword [esi + 8]
test eax, eax
jne 0x60ff6b
push 0
push esi
call fcn.0062c7f0
add esp, 8
mov dword [esi + 8], eax
movsx eax, word [ebp + 0x94]
inc ebx
add edi, 0x14
cmp ebx, eax
jl 0x60ff40
mov al, byte [esp + 0x90]
test al, al
je 0x60ffdf
xor dl, dl
cmp word [ebp + 0x92], 0
jle 0x60ffaf
mov eax, dword [ebp + 0x70]
movsx ecx, word [ebp + 0x92]
jmp 0x60ffa0
mov esi, dword [eax]
test byte [esi], 0x40
je 0x60ffa9
mov dl, 1
add eax, 4
dec ecx
jne 0x60ffa0
cmp word [ebp + 0x90], 0
jle 0x60ffd4
mov eax, dword [ebp + 0x6c]
movsx ecx, word [ebp + 0x90]
cmp word [eax], 0x7fd
jne 0x60ffce
inc dword [esp + 0x40]
add eax, 0x30
dec ecx
jne 0x60ffc3
test dl, dl
jne 0x60ffdf
mov byte [esp + 0x90], dl
movsx esi, word [ebp + 0x92]
xor eax, eax
xor edi, edi
cmp esi, eax
mov dword [esp + 0x20], edi
jle 0x610046
mov edx, dword [ebp + 0x70]
movsx ebx, word [ebp + 0x92]
lea esp, [esp]
mov eax, dword [edx]
mov cl, byte [eax + 3]
test cl, cl
je 0x61002c
mov cx, word [eax]
test cl, 4
je 0x61002c
test cl, 0x40
jne 0x61002c
mov cl, byte [eax + 5]
test cl, cl
jne 0x61002c
cmp byte [eax + 0x11], 2
jne 0x61002c
movzx eax, word [eax + 0x4c]
movzx ecx, ax
add edi, ecx
add edx, 4
dec ebx
jne 0x610000
xor eax, eax
cmp edi, 0xffff
mov dword [esp + 0x20], edi
jle 0x610046
xor edi, edi
mov dword [esp + 0x20], edi
cmp esi, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], eax
jle 0x610bf5
mov edx, dword [ebp + 0x70]
mov ebp, dword [edx + eax*4]
mov bl, byte [ebp + 3]
test bl, bl
mov dword [esp + 0x18], ebp
je 0x610b92
xor edx, edx
mov dx, word [ebp]
mov esi, edx
and esi, 4
je 0x61008e
movzx eax, word [ebp + 0x4c]
jmp 0x6100a2
movzx eax, bl
lea eax, [eax + eax*2]
lea ecx, [ebp + eax*8]
movzx eax, word [ecx + 0x36]
movzx ecx, word [ecx + 0x2e]
add eax, ecx
movzx eax, ax
test eax, eax
mov dword [esp + 0x14], eax
je 0x610b92
mov eax, edx
and eax, 0x1000
test edi, edi
mov dword [esp + 0x44], eax
je 0x6100dc
test si, si
je 0x6100dc
test dl, 0x40
jne 0x6100dc
mov al, byte [ebp + 5]
test al, al
jne 0x6100dc
cmp byte [ebp + 0x11], 2
mov byte [esp + 0x12], 1
je 0x6100e1
mov byte [esp + 0x12], 0
test bl, bl
mov dword [esp + 0x5c], 0
jbe 0x6104ca
lea edx, [ebp + 0x40]
lea eax, [ebp + 0x50]
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], eax
nop
test byte [ebp], 4
mov esi, dword [esp + 0x34]
jne 0x61010e
mov esi, dword [esp + 0x38]
mov al, byte [esp + 0x12]
xor ebx, ebx
test al, al
mov dword [esi + 0x14], ebx
je 0x610137
test byte [esi + 0x1d], 1
je 0x61012c
mov cx, word [esp + 0x30]
mov word [esi + 4], cx
jmp 0x61013b
mov dx, word [esp + 0x30]
add word [esi + 0xe], dx
jmp 0x61013b
mov word [esi + 4], bx
test byte [ebp], 4
jne 0x61014d
mov ax, word [esi + 6]
sub ax, 2
mov word [esi + 0x10], ax
mov di, word [esi + 0xc]
cmp di, 0x4000
jae 0x610170
mov edx, dword [esp + 0x8c]
movzx eax, di
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x78]
lea ecx, [eax + ecx*4]
mov dword [esi + 0x14], ecx
jmp 0x6101b1
cmp di, 0xfffe
mov byte [esp + 0x24], 0
mov byte [esp + 0x25], 0
mov byte [esp + 0x26], 0
mov byte [esp + 0x27], 0
jne 0x610191
mov word [esi + 0xc], 0xc000
mov eax, dword [esp + 0x8c]
xor edi, edi
mov di, word [esi + 0xc]
lea edx, [esp + 0x24]
push edi
push edx
push esi
push eax
call fcn.0060e290
add esp, 0x10
mov dword [esi + 0x14], eax
cmp di, 0x8000
jb 0x6101ce
cmp di, 0xc000
jb 0x6101c6
cmp di, 0xd000
jb 0x6101ce
mov dword [esi + 0x14], ebx
jmp 0x610478
cmp word [esi + 0x12], bx
jbe 0x610478
mov eax, dword [esi + 0x14]
test eax, eax
mov dword [esp + 0x58], eax
je 0x610478
mov ax, word [esi]
test al, 4
je 0x610478
test al, 8
je 0x610478
movzx eax, word [esi + 0x12]
mov ecx, eax
shr ecx, 8
and ecx, 0xf
mov edx, 1
shl edx, cl
mov ecx, eax
shr ecx, 0xc
cmp ecx, 0xf
mov dword [esp + 0x2c], edx
je 0x610478
imul ecx, edx
mov dword [esp + 0x50], ecx
mov ecx, eax
and ecx, 0xf
mov ebx, 1
shr eax, 4
shl ebx, cl
and eax, 0xf
imul eax, ebx
mov dword [esp + 0x54], eax
xor eax, eax
cmp di, 0x4000
jb 0x61024f
cmp di, 0x8000
jb 0x610256
cmp di, 0xc000
jb 0x61025b
mov eax, 1
test eax, eax
mov dword [esp + 0x28], 0xffffffff
je 0x610380
mov eax, dword [0x74a7c4]
test eax, eax
jne 0x61029c
push 0x1acb
push 0x69ea48
push 0x10
push 0xc00
call fcn.0061fe40
add esp, 0x10
xor edi, edi
mov dword [0x74a7c4], eax
mov dword [0x74a7c8], edi
jmp 0x6102a2
mov edi, dword [0x74a7c8]
xor ecx, ecx
test edi, edi
jle 0x6102f2
lea edx, [eax + 8]
jmp 0x6102b0
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x6102cd
mov ax, word [edx - 4]
cmp ax, word [esi + 0x12]
jne 0x6102cd
mov eax, dword [edx]
cmp eax, dword [esi + 0x14]
jne 0x6102cd
mov dword [esp + 0x28], ecx
inc ecx
add edx, 0xc
cmp ecx, edi
jl 0x6102b0
mov eax, dword [esp + 0x28]
cmp eax, 0xffffffff
jle 0x6102f2
mov edx, dword [0x74a7c4]
lea ecx, [eax + eax*2]
mov eax, dword [edx + ecx*4]
mov dword [esi + 0x14], eax
jmp 0x610478
cmp ebx, 8
jl 0x610478
mov eax, dword [esp + 0x2c]
cmp eax, 8
jl 0x610478
mov edx, dword [esp + 0x50]
mov edi, dword [esi + 0x14]
mov ecx, eax
mov eax, dword [esp + 0x54]
push ecx
push ebx
push edx
push eax
push edi
call fcn.0060dc90
add esp, 0x14
test eax, eax
mov dword [esi + 0x14], eax
je 0x610478
mov eax, dword [0x74a7c8]
cmp eax, 0x100
jge 0x610478
mov edx, dword [0x74a7c4]
lea ecx, [eax + eax*2]
mov dword [edx + ecx*4 + 8], edi
mov eax, dword [0x74a7c8]
mov ecx, dword [esi + 0x14]
mov edx, dword [0x74a7c4]
lea eax, [eax + eax*2]
mov dword [edx + eax*4], ecx
mov eax, dword [0x74a7c8]
mov cx, word [esi + 0x12]
mov edx, dword [0x74a7c4]
lea eax, [eax + eax*2]
mov word [edx + eax*4 + 4], cx
inc dword [0x74a7c8]
jmp 0x610478
mov edi, dword [esp + 0x8c]
mov eax, dword [edi + 0xa8]
xor edx, edx
test eax, eax
jle 0x6103fd
mov dword [esp + 0x64], eax
xor ecx, ecx
lea esp, [esp]
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x6103d7
mov eax, dword [edi + 0xa4]
mov di, word [esi + 0x12]
add eax, ecx
cmp word [eax + 4], di
jne 0x6103d0
mov edi, dword [esp + 0x58]
cmp dword [eax + 8], edi
mov edi, dword [esp + 0x8c]
jne 0x6103d7
mov dword [esp + 0x28], edx
jmp 0x6103d7
mov edi, dword [esp + 0x8c]
mov eax, dword [esp + 0x64]
inc edx
add ecx, 0xc
cmp edx, eax
jl 0x6103a0
mov eax, dword [esp + 0x28]
cmp eax, 0xffffffff
jle 0x6103fd
mov edx, dword [edi + 0xa4]
lea ecx, [eax + eax*2]
mov eax, dword [edx + ecx*4]
mov dword [esi + 0x14], eax
jmp 0x610478
cmp ebx, 8
jl 0x610478
mov eax, dword [esp + 0x2c]
cmp eax, 8
jl 0x610478
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
push eax
push ebx
mov ebx, dword [esp + 0x60]
push ecx
push edx
push ebx
call fcn.0060dc90
add esp, 0x14
test eax, eax
mov dword [esi + 0x14], eax
je 0x610478
mov eax, dword [edi + 0xa8]
cmp eax, 0x400
jge 0x610478
mov ecx, dword [edi + 0xa4]
lea eax, [eax + eax*2]
mov dword [ecx + eax*4 + 8], ebx
mov eax, dword [edi + 0xa8]
mov ecx, dword [esi + 0x14]
lea edx, [eax + eax*2]
mov eax, dword [edi + 0xa4]
mov dword [eax + edx*4], ecx
mov eax, dword [edi + 0xa8]
mov cx, word [esi + 0x12]
lea edx, [eax + eax*2]
mov eax, dword [edi + 0xa4]
mov word [eax + edx*4 + 4], cx
inc dword [edi + 0xa8]
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x61049f
lea edx, [esp + 0x68]
push edx
push 0
call fcn.005f4b20
mov eax, dword [esp + 0x68]
cmp eax, 0x10
jl 0x61049f
cmp eax, 0x31
jg 0x61049f
mov word [esi + 0x12], 0xffff
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
movzx ecx, byte [ebp + 3]
inc eax
add edi, 0x20
add esi, 0x18
cmp eax, ecx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], esi
jl 0x610100
mov cl, byte [esp + 0x90]
xor eax, eax
mov ax, word [ebp]
test al, 4
je 0x610780
test cl, cl
je 0x61061a
test al, 0x40
je 0x61061a
mov ebx, dword [esp + 0x14]
push 0x1b5e
push 0x69ea48
and eax, 0xdff7
lea edx, [ebx + ebx*4]
shl edx, 3
or eax, 2
push 0x10
push edx
mov word [ebp], ax
call fcn.0061fe40
mov edi, dword [esp + 0x9c]
mov ecx, dword [edi + 0x64]
mov esi, dword [esp + 0x2c]
mov dword [ecx + esi*4], eax
mov eax, dword [edi + 0x14]
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0x14]
add edx, eax
add ecx, eax
mov eax, dword [edi + 0x64]
mov edi, dword [eax + esi*4]
add esp, 0x10
test ebx, ebx
mov dword [esp + 0x5c], edi
jle 0x6105b7
lea eax, [edi + 0x18]
lea esi, [edx + 0x18]
mov dword [esp + 0x58], ebx
mov ebx, edx
mov ebp, dword [ebx]
mov dword [edi], ebp
mov ebp, dword [ebx + 4]
mov dword [edi + 4], ebp
mov ebx, dword [ebx + 8]
mov dword [edi + 8], ebx
lea edi, [esi - 0xc]
mov ebp, dword [edi]
lea ebx, [eax - 0xc]
mov dword [ebx], ebp
mov ebp, dword [edi + 4]
mov dword [ebx + 4], ebp
mov edi, dword [edi + 8]
mov dword [ebx + 8], edi
mov edi, dword [esi]
mov ebx, dword [esp + 0x58]
mov dword [eax], edi
mov edi, dword [esi + 4]
mov dword [eax + 4], edi
mov edi, dword [ecx]
mov dword [eax + 8], edi
mov edi, dword [ecx + 4]
mov dword [eax + 0xc], edi
mov edi, dword [esp + 0x5c]
add edi, 0x28
add eax, 0x28
add edx, 0x20
add esi, 0x20
add ecx, 8
dec ebx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], ebx
jne 0x610550
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov cl, byte [ebp + 3]
xor eax, eax
test cl, cl
jbe 0x6105d2
lea ecx, [ebp + 0x6e]
mov word [ecx], si
movzx edx, byte [ebp + 3]
inc eax
add ecx, 0x20
cmp eax, edx
jl 0x6105c3
mov ebx, dword [esp + 0x14]
mov byte [esp + 0x13], 1
mov al, byte [esp + 0x12]
test al, al
je 0x6106c8
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x61073f
mov edx, dword [esp + 0x20]
push eax
push eax
push eax
movzx eax, byte [ebp + 5]
lea esi, [ebp + 4]
push edx
push eax
mov ecx, esi
mov dword [esp + 0x5c], esi
call fcn.006180e0
mov ecx, esi
call fcn.00617c20
jmp 0x61074c
and eax, 0xdfff
mov word [ebp], ax
mov al, byte [esp + 0x12]
test al, al
je 0x61069e
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x61065b
movzx ecx, byte [ebp + 0x11]
push eax
push eax
push eax
mov eax, dword [esp + 0x2c]
push eax
lea esi, [ebp + 0x10]
push ecx
mov ecx, esi
mov dword [esp + 0x60], esi
call fcn.006180e0
mov ecx, esi
call fcn.00617c20
mov dword [esp + 0x3c], eax
jmp 0x610664
push eax
lea ecx, [ebp + 0x10]
call fcn.00617bd0
movzx ecx, byte [ebp + 0x12]
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x8c]
imul ecx, ebx
mov edi, dword [edx + 0x14]
mov esi, dword [ebp + 0x14]
mov eax, dword [esp + 0x3c]
mov edx, ecx
add esi, edi
shr ecx, 2
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
lea eax, [eax + ebx*4]
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x3c], eax
jmp 0x6105db
mov edx, dword [esp + 0x8c]
mov ecx, dword [ebp + 0x14]
mov ebx, dword [edx + 0x14]
mov eax, dword [esp + 0x14]
add ecx, ebx
push ecx
movzx ecx, byte [ebp + 0x11]
push 0
push 0
push eax
push ecx
lea ecx, [ebp + 0x10]
call fcn.006180e0
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x8c]
mov edx, dword [ecx + 0x14]
mov eax, dword [ebp + 8]
add eax, edx
movzx edx, byte [ebp + 5]
push eax
push 0
push 0
push ebx
push edx
lea ecx, [ebp + 4]
call fcn.006180e0
movzx eax, word [ebp + 0x4e]
cmp eax, 0xffff
jne 0x61071b
mov cl, byte [ebp + 3]
xor eax, eax
test cl, cl
jbe 0x610b4c
movzx edx, byte [ebp + 3]
lea ecx, [ebp + 0x6a]
lea esp, [esp]
movzx esi, word [ecx]
add eax, esi
add ecx, 0x20
dec edx
jne 0x610710
test eax, eax
jbe 0x610b4c
mov edx, dword [esp + 0x8c]
mov ecx, dword [ebp + 0x44]
add ecx, dword [edx + 0x14]
push ecx
push eax
lea ecx, [ebp + 0x40]
call fcn.00618290
jmp 0x610b4c
push eax
lea ecx, [ebp + 4]
call fcn.00617bd0
mov eax, dword [esp + 0x60]
movzx ecx, byte [ebp + 6]
mov edx, dword [esp + 0x8c]
imul ecx, ebx
mov edi, dword [edx + 0x14]
mov esi, dword [ebp + 8]
mov edx, ecx
add esi, edi
shr ecx, 2
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
shl ebx, 5
add eax, ebx
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x60], eax
jmp 0x6106ea
test cl, cl
je 0x610993
test al, 0x40
je 0x610993
mov ecx, dword [esp + 0x40]
mov esi, dword [0x745844]
mov edi, dword [esi + 0x56c]
lea edx, [ecx + 1]
cmp edx, edi
jg 0x6108cf
push ecx
and eax, 0xfffd
push str.Using_HW_skin_transforms_on_a_model_with__i_bones._r_n
mov word [ebp], ax
call fcn.00569b60
mov esi, dword [esp + 0x1c]
add esp, 8
push 0
push 0
push 0
push esi
lea ecx, [ebp + 4]
push 0
call fcn.006180e0
test al, al
je 0x610bb6
push 0
push 0
push 0
push esi
lea ecx, [ebp + 0x10]
push 0xf
call fcn.006180e0
test al, al
je 0x610bb6
mov edi, dword [esp + 0x18]
mov ebx, dword [edi + 8]
mov ebp, dword [edi + 0x14]
lea ecx, [edi + 4]
call fcn.00617c20
lea ecx, [edi + 0x10]
mov esi, eax
call fcn.00617c20
test esi, esi
mov edi, eax
je 0x610bb6
test edi, edi
je 0x610bb6
mov eax, dword [esp + 0x14]
push eax
push esi
push ebx
call fcn.00616fd0
mov esi, dword [esp + 0x20]
push esi
push edi
push ebp
call fcn.00616d30
add esp, 0x18
test esi, esi
jle 0x610892
mov ebx, esi
xor esi, esi
lea esp, [esp]
mov ax, word [edi + esi*2]
movsx ecx, ax
cmp ax, 0xffdc
mov eax, 0x55555556
jl 0x610872
add ecx, 0x24
imul ecx
mov ecx, edx
shr ecx, 0x1f
lea eax, [edx + ecx + 0x13]
jmp 0x61087e
add ecx, 0x60
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*2 + 0x21]
mov word [edi + esi*2], dx
inc esi
cmp esi, 4
jl 0x610850
add edi, 0x18
dec ebx
jne 0x610847
mov esi, dword [esp + 0x18]
test dword [esi + 4], 0x1000000
jne 0x6108a8
mov eax, dword [esi + 0xc]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x30]
mov ecx, dword [esi + 0x10]
test ecx, 0x1000000
lea eax, [esi + 0x10]
jne 0x610a85
mov eax, dword [esp + 0x18]
add eax, 0x10
mov eax, dword [eax + 8]
mov edx, dword [eax]
push eax
call dword [edx + 0x30]
jmp 0x610a85
mov bl, al
push 0
and eax, 0xfff7
or eax, 2
push 0
mov word [ebp], ax
mov eax, dword [esp + 0x1c]
push 0
shr bl, 1
lea edi, [ebp + 4]
push eax
not bl
push 0
mov ecx, edi
and bl, 1
mov dword [esp + 0x70], edi
call fcn.006180e0
mov esi, dword [ebp + 8]
mov ebp, dword [ebp + 0x14]
mov ecx, edi
call fcn.00617c20
test eax, eax
je 0x610bb6
mov ecx, dword [esp + 0x14]
push ecx
push eax
push esi
call fcn.00616fd0
add esp, 0xc
test bl, bl
je 0x610973
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x610973
mov edi, ebp
mov ebx, eax
xor esi, esi
mov ax, word [edi + esi*2]
movsx ecx, ax
cmp ax, 0xffdc
mov eax, 0x55555556
jl 0x610957
add ecx, 0x24
imul ecx
mov eax, edx
shr eax, 0x1f
lea eax, [edx + eax + 0x13]
jmp 0x610963
add ecx, 0x60
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov word [edi + esi*2], ax
inc esi
cmp esi, 4
jl 0x610935
add edi, 0xc
dec ebx
jne 0x610933
mov ecx, dword [esp + 0x5c]
test dword [ecx], 0x1000000
jne 0x610a85
mov edx, ecx
mov eax, dword [edx + 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x30]
jmp 0x610a85
mov ebx, dword [esp + 0x14]
push 0
push 0
push 0
push ebx
lea esi, [ebp + 4]
push 0
mov ecx, esi
call fcn.006180e0
test al, al
je 0x610bb6
mov edi, dword [ebp + 8]
mov ecx, esi
mov dword [esp + 0x64], edi
call fcn.00617c20
test eax, eax
je 0x610bb6
push ebx
push eax
push edi
call fcn.00617310
mov eax, dword [esi]
add esp, 0xc
test eax, 0x1000000
jne 0x6109e5
mov esi, dword [esi + 8]
mov edx, dword [esi]
push esi
call dword [edx + 0x30]
mov ax, word [ebp]
test al, 8
je 0x610a85
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x64]
mov edi, ebx
imul edi, edi, 0xe
add edi, edx
test ah, 0x20
je 0x610a6d
push 0xc2
push str.c:_activision_truecrimeluxengine2LuxDefs.h
push 0x10
lea esi, [ebp + 0x10]
push 8
mov byte [esi], 2
call fcn.0061fe40
add esp, 0x10
test eax, eax
mov dword [esi + 8], eax
je 0x610bb6
xor eax, eax
mov edi, edi
mov ecx, dword [esi + 8]
mov dword [eax + ecx], 0
add eax, 4
cmp eax, 8
jl 0x610a30
push edi
push 0
push ebx
push 2
push 0
mov ecx, esi
call fcn.00618140
test al, al
je 0x610bb6
lea edx, [edi + ebx*4]
push edx
push 0
push ebx
push 2
push 1
mov ecx, esi
call fcn.00618140
jmp 0x610a7d
push edi
push 0
push 0
push ebx
push 2
lea ecx, [ebp + 0x10]
call fcn.006180e0
test al, al
je 0x610bb6
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x18]
xor ebx, ebx
cmp eax, ebx
je 0x610b4c
xor eax, eax
mov ax, word [ebp]
test al, 8
je 0x610ab2
and eax, 0x2000
neg eax
sbb eax, eax
and eax, 4
add eax, 4
jmp 0x610ab4
xor eax, eax
mov cl, byte [esp + 0x90]
mov esi, dword [esp + 0x14]
mov edx, dword [ebp + 8]
neg cl
push 0xc0
push str.c:_activision_truecrimeluxengine2LuxDefs.h
push 0x10
push 0xc
sbb ecx, ecx
and ecx, 0x12
add ecx, 0xe
imul ecx, esi
add ecx, eax
add ecx, edx
mov edi, ecx
call fcn.0061fe40
add esp, 0x10
cmp eax, ebx
je 0x610af9
mov dword [eax + 8], ebx
mov dword [eax + 4], ebx
mov dword [eax], ebx
jmp 0x610afb
xor eax, eax
cmp eax, ebx
mov dword [ebp + 0x1c], eax
je 0x610bb6
push ebx
push ebx
push ebx
push esi
push 5
mov ecx, eax
call fcn.006180e0
test al, al
je 0x610bb6
mov ecx, dword [ebp + 0x1c]
call fcn.00617c20
cmp eax, ebx
je 0x610bb6
push esi
push eax
push edi
call fcn.00617700
mov eax, dword [ebp + 0x1c]
mov ecx, dword [eax]
add esp, 0xc
test ecx, 0x1000000
jne 0x610b4c
mov eax, dword [eax + 8]
mov edx, dword [eax]
push eax
call dword [edx + 0x30]
mov al, byte [esp + 0x12]
test al, al
je 0x610b62
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x1c]
cmp eax, 2
jl 0x610b72
jle 0x610b92
cmp eax, 6
jge 0x610b92
mov ecx, dword [esp + 0x8c]
add ecx, 0x1c
push str.DataCharROSIE.RES
push ecx
call fcn.00674a61
add esp, 8
test eax, eax
jne 0x610b92
or byte [ebp + 1], 0x80
mov ebp, dword [esp + 0x8c]
mov eax, dword [esp + 0x1c]
movsx edx, word [ebp + 0x92]
inc eax
cmp eax, edx
mov dword [esp + 0x1c], eax
jge 0x610bc3
mov edi, dword [esp + 0x20]
jmp 0x610066
pop edi
pop esi
pop ebp
mov eax, 0x80004005
pop ebx
add esp, 0x78
ret
mov eax, dword [esp + 0x48]
test eax, eax
je 0x610bdc
test dword [eax], 0x1000000
jne 0x610bdc
mov eax, dword [eax + 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x30]
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x610bf5
test dword [eax], 0x1000000
jne 0x610bf5
mov eax, dword [eax + 8]
mov edx, dword [eax]
push eax
call dword [edx + 0x30]
xor edi, edi
xor ebx, ebx
cmp word [ebp + 0x96], di
mov dword [esp + 0x60], edi
jle 0x610d7e
mov eax, dword [esp + 0x8c]
mov esi, dword [eax + 0x80]
movsx ebp, word [eax + 0x96]
mov edi, edi
mov ecx, dword [esi]
mov al, byte [ecx + 3]
test al, al
je 0x610c53
test byte [ecx], 4
je 0x610c34
movzx eax, word [ecx + 0x4c]
jmp 0x610c48
movzx eax, byte [ecx + 3]
lea eax, [eax + eax*2]
lea edx, [ecx + eax*8]
movzx eax, word [edx + 0x36]
movzx edx, word [edx + 0x2e]
add eax, edx
movzx eax, ax
add ebx, eax
test edi, edi
jne 0x610c53
mov edi, ecx
add esi, 4
dec ebp
jne 0x610c20
test ebx, ebx
mov dword [esp + 0x60], edi
jle 0x610d7e
push 0
push 0
push 0
lea esi, [edi + 4]
push ebx
push 0
mov ecx, esi
mov dword [esp + 0x6c], esi
call fcn.006180e0
mov ecx, esi
call fcn.00617c20
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x64], eax
mov dword [esp + 0x30], eax
xor eax, eax
cmp word [ecx + 0x96], ax
mov dword [esp + 0x5c], eax
jle 0x610d6d
jmp 0x610cb0
mov edx, dword [ecx + 0x80]
mov ebx, dword [edx + eax*4]
mov dl, byte [ebx + 3]
test dl, dl
je 0x610d59
cmp ebx, edi
je 0x610cd1
push esi
lea ecx, [ebx + 4]
call fcn.00617bd0
mov dx, word [ebx]
and dx, 4
je 0x610ce0
movzx eax, word [ebx + 0x4c]
jmp 0x610cf4
movzx eax, byte [ebx + 3]
lea eax, [eax + eax*2]
lea ecx, [ebx + eax*8]
movzx eax, word [ecx + 0x36]
movzx ecx, word [ecx + 0x2e]
add eax, ecx
test dx, dx
movzx ebp, ax
je 0x610d18
mov esi, dword [ebx + 8]
mov edi, dword [esp + 0x30]
mov ecx, ebp
shl ecx, 5
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x610d2a
mov eax, dword [esp + 0x30]
mov ecx, dword [ebx + 8]
push ebp
push eax
push ecx
call fcn.00617310
add esp, 0xc
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x64]
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x8c]
mov edx, eax
sub edx, edi
mov edi, dword [esp + 0x60]
sar edx, 5
shl ebp, 5
add eax, ebp
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x5c]
mov word [ebx + 0x44], dx
movsx edx, word [ecx + 0x96]
inc eax
cmp eax, edx
mov dword [esp + 0x5c], eax
jl 0x610cb0
test dword [esi], 0x1000000
jne 0x610d7e
mov esi, dword [esi + 8]
mov eax, dword [esi]
push esi
call dword [eax + 0x30]
mov esi, dword [esp + 0x8c]
mov eax, dword [esi + 0xa8]
xor edi, edi
cmp eax, edi
jne 0x610db4
mov eax, dword [esi + 0xa4]
cmp eax, edi
je 0x610db4
push 0x1d1b
push 0x69ea48
push eax
call fcn.00620150
add esp, 0xc
mov dword [esi + 0xa4], edi
mov al, byte [esp + 0x13]
test al, al
jne 0x610dd9
mov eax, dword [esi + 0x64]
cmp eax, edi
je 0x610dd9
push 0x1d22
push 0x69ea48
push eax
call fcn.00620150
add esp, 0xc
mov dword [esi + 0x64], edi
mov eax, dword [esi + 0x14]
cmp eax, edi
je 0x610df6
push 0x1d2a
push 0x69ea48
push eax
call fcn.00620150
add esp, 0xc
mov dword [esi + 0x14], edi
mov eax, dword [esi + 4]
or eax, 2
pop edi
mov dword [esi + 4], eax
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x78
ret