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

Disassembly:
push ebp
push edi
push esi
push ebx
xor ebx, ebx
sub esp, 0xcc
mov esi, dword [0x60fc28]
mov eax, dword [esp + 0xe0]
mov ebp, dword [esp + 0xe4]
lea ecx, [esp + 0x78]
mov edi, dword [esp + 0xec]
mov dword [esp], eax
call esi
sub esp, 4
mov eax, dword [esp + 0xe8]
mov eax, dword [eax]
mov edx, dword [eax + 4]
test edx, edx
jne 0x4f18b0
mov eax, edi
test al, al
je 0x4f1740
cmp word [ebp], 0x400c
je 0x4f1911
cmp ebx, 0x400
jne 0x4f1a3e
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], 0x5d8267
mov dword [esp], eax
call dword [0x60f7e4]
test eax, eax
je 0x4f1cd2
lea ecx, [esp + 0x78]
call dword [0x60ffc4]
cmp eax, 0x10
ja 0x4f17c0
cmp eax, 0xe
jae 0x4f2590
cmp eax, 5
je 0x4f2600
ja 0x4f1a70
cmp eax, 2
je 0x4f26e4
ja 0x4f1776
test eax, eax
jne 0x4f1d58
cmp word [ebp], 0x400a
je 0x4f32d6
mov edx, 0xa
mov dword [ebp + 8], 0x80020004
mov ebx, 1
mov word [ebp], dx
mov dword [esp], 4
call fcn.004f9c48
mov edx, dword [ebp + 8]
or word [ebp], 0x4000
mov dword [ebp + 8], eax
mov dword [eax], edx
jmp 0x4f1d8c
lea ecx, [esp + 0x78]
call dword [0x60ffc4]
cmp eax, 0x10
ja 0x4f17c0
cmp eax, 0xe
jae 0x4f2590
cmp eax, 5
je 0x4f2600
ja 0x4f1950
cmp eax, 2
je 0x4f26e4
jbe 0x4f1d50
cmp eax, 3
je 0x4f1fd0
cmp eax, 4
jne 0x4f24a4
mov eax, edi
test al, al
jne 0x4f2834
mov ecx, 0x14
mov ebx, 1
mov word [ebp], cx
mov dword [esp], 0
lea ecx, [esp + 0x78]
call dword [0x60ffb0]
sub esp, 4
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
jmp 0x4f1d8c
cmp eax, 0x26
je 0x4f2535
jbe 0x4f1ad1
cmp eax, 0x43
je 0x4f21e0
ja 0x4f1b40
cmp eax, 0x40
je 0x4f2020
cmp eax, 0x41
jne 0x4f24a4
mov eax, edi
test al, al
je 0x4f1802
cmp word [ebp], 0x4009
je 0x4f302a
mov eax, 9
lea ecx, [esp + 0x78]
mov word [ebp], ax
call dword [0x610000]
cmp eax, 0x41
je 0x4f2fba
lea ebx, [esp + 0xa8]
mov esi, dword [0x6101c4]
mov ecx, ebx
call esi
mov dword [esp + 4], ebx
mov dword [esp], 0x41
lea ecx, [esp + 0x78]
call dword [0x60ffec]
sub esp, 8
test al, al
lea eax, [esp + 0x98]
mov dword [esp + 0x18], eax
je 0x4f2f94
mov dword [esp], ebx
mov ecx, eax
call dword [0x6101c0]
sub esp, 4
mov ecx, ebx
mov ebx, dword [0x6101c8]
call ebx
mov esi, dword [esp + 0x18]
mov eax, esi
call fcn.004ee6c0
mov dword [ebp + 8], eax
mov ecx, esi
call ebx
mov eax, edi
test al, al
je 0x4f1d87
mov dword [esp], 4
call fcn.004f9c48
mov edx, dword [ebp + 8]
mov dword [eax], edx
or word [ebp], 0x4000
mov dword [ebp + 8], eax
mov ebx, edi
jmp 0x4f1d8c
add eax, dword [eax + 0xc]
mov dword [esp], eax
call dword [0x60fbfc]
test eax, 0xfffffbff
mov ebx, eax
je 0x4f1677
cmp eax, 0x29
je 0x4f1677
lea ecx, [esp + 0x78]
call dword [0x60ffc4]
cmp eax, ebx
je 0x4f1677
mov dword [esp], ebx
lea ecx, [esp + 0x78]
call dword [0x60ffa8]
sub esp, 4
test al, al
je 0x4f1c00
mov dword [esp], ebx
lea ecx, [esp + 0x78]
call dword [0x60fc04]
sub esp, 4
jmp 0x4f1677
mov eax, dword [ebp + 8]
test eax, eax
je 0x4f168d
mov edx, dword [esp + 0xe8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xc], 0
mov dword [esp + 8], edx
mov dword [esp], eax
call fcn.004f1630
mov ebx, eax
jmp 0x4f1d8c
cmp eax, 0xa
je 0x4f2640
jbe 0x4f1da3
cmp eax, 0xb
je 0x4f1ea0
cmp eax, 0xc
jne 0x4f24a4
lea eax, [esp + 0x78]
lea ecx, [esp + 0x98]
mov dword [esp], eax
call dword [0x60ffb4]
sub esp, 4
mov eax, dword [esp + 0x98]
mov ebx, dword [eax + 4]
mov dword [esp + 4], 0
mov dword [esp], 0x11
mov dword [esp + 8], ebx
call dword [0x610cac]
sub esp, 0xc
test ebx, ebx
mov esi, eax
jne 0x4f2c00
mov eax, edi
test al, al
je 0x4f27f5
cmp word [ebp], 0x6011
je 0x4f3280
mov ebx, 0x2011
mov dword [ebp + 8], esi
mov word [ebp], bx
mov dword [esp], 4
call fcn.004f9c48
mov edx, dword [ebp + 8]
or word [ebp], 0x4000
mov dword [ebp + 8], eax
mov dword [eax], edx
mov eax, dword [esp + 0x98]
mov edx, dword [eax]
test edx, edx
je 0x4f1a20
cmp edx, 0xffffffff
je 0x4f1d87
lock sub dword [eax], 1
mov eax, dword [esp + 0x98]
jne 0x4f1d87
nop
lea esi, [esi]
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [0x60f7f4]
jmp 0x4f1d87
lea ecx, [esp + 0x78]
call dword [0x60ffc4]
cmp eax, 0x10
ja 0x4f17c0
cmp eax, 0xe
jae 0x4f2590
cmp eax, 5
je 0x4f2600
jbe 0x4f1767
lea esi, [esi]
cmp eax, 0xa
je 0x4f2640
ja 0x4f195f
cmp eax, 6
jne 0x4f1dac
cmp word [ebp], 0x4005
je 0x4f3654
mov eax, 0x4005
lea ecx, [esp + 0x78]
mov ebx, edi
mov word [ebp], ax
mov dword [esp], 0
call dword [0x60fff4]
sub esp, 4
fstp qword [esp + 0x18]
mov dword [esp], 8
call fcn.004f9c48
fld qword [esp + 0x18]
fstp qword [eax]
mov dword [ebp + 8], eax
jmp 0x4f1d8c
cmp eax, 0x22
je 0x4f2500
jbe 0x4f24b0
cmp eax, 0x24
je 0x4f20b2
cmp eax, 0x25
jne 0x4f24a4
mov eax, edi
test al, al
je 0x4f2a80
cmp word [ebp], 0x4011
je 0x4f3634
mov ebx, 0x4011
lea ecx, [esp + 0x78]
mov word [ebp], bx
mov dword [esp], 0
call dword [0x60ffe8]
sub esp, 4
mov ebx, eax
mov dword [esp], 1
call fcn.004f9c48
mov byte [eax], bl
mov dword [ebp + 8], eax
mov ebx, edi
jmp 0x4f1d8c
cmp eax, 0x4a
je 0x4f2130
cmp eax, 0x400
jne 0x4f24a4
mov esi, dword [0x60fffc]
lea ecx, [esp + 0x78]
mov dword [esp + 0x2c], esi
call esi
mov dword [esp], eax
mov eax, dword [0x60f84c]
lea ecx, [esp + 0x6c]
mov dword [esp + 4], 0xffffffff
mov dword [esp + 0x34], eax
call eax
sub esp, 8
lea ecx, [esp + 0x78]
call esi
mov dword [esp + 4], str.IDispatch
mov dword [esp], eax
mov ebx, dword [0x60f7e0]
call ebx
test eax, eax
jne 0x4f2bb0
mov eax, edi
test al, al
jne 0x4f2330
mov esi, 9
mov word [ebp], si
lea ecx, [esp + 0x78]
call dword [0x60fc00]
mov eax, dword [eax]
test eax, eax
mov dword [ebp + 8], eax
je 0x4f1bd3
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 4]
sub esp, 4
mov eax, dword [esp + 0x6c]
mov edx, dword [eax]
test edx, edx
je 0x4f1a20
cmp edx, 0xffffffff
je 0x4f1d87
lock sub dword [eax], 1
mov eax, dword [esp + 0x6c]
jne 0x4f1d87
jmp 0x4f1a20
lea eax, [esp + 0x98]
mov dword [esp], ebx
mov ecx, eax
mov dword [esp + 0x18], eax
call dword [0x60fc08]
sub esp, 4
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x80]
mov dword [esp + 0x24], eax
mov dword [esp + 0xa8], eax
and edx, 0x3fffffff
mov eax, dword [esp + 0x7c]
mov ecx, edx
movzx edx, byte [esp + 0x83]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xb0]
and eax, 0xc0000000
or eax, ecx
mov ecx, edx
and edx, 0xffffff80
mov dword [esp + 0xb0], eax
shr eax, 0x18
and ecx, 0x40
and eax, 0x3f
or eax, ecx
mov ecx, dword [esp + 0x18]
or edx, eax
mov eax, dword [esp + 0xac]
mov byte [esp + 0xb3], dl
mov edx, dword [esp + 0x24]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x98], edx
mov dword [esp + 0xa0], eax
call dword [0x60fc50]
jmp 0x4f1677
mov dword [esp], 0x10
call fcn.004f9c48
mov ebx, eax
mov eax, dword [0x60f7f8]
mov dword [esp + 0xc], 0
mov dword [esp + 4], ebx
mov dword [esp + 0xa8], eax
lea eax, [esp + 0xa8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
call fcn.004f1630
mov eax, dword [esp + 0xa8]
mov edx, dword [eax]
test edx, edx
je 0x4f22e0
cmp edx, 0xffffffff
je 0x4f1d39
lock sub dword [eax], 1
mov eax, dword [esp + 0xa8]
je 0x4f22e0
mov eax, 0x400c
mov dword [ebp + 8], ebx
mov ebx, edi
mov word [ebp], ax
jmp 0x4f1d8c
test eax, eax
je 0x4f2780
cmp eax, 1
jne 0x4f24a4
mov eax, edi
test al, al
jne 0x4f27a0
mov eax, 0xb
lea ecx, [esp + 0x78]
mov word [ebp], ax
call dword [0x60ffd0]
movzx eax, al
neg eax
mov word [ebp + 8], ax
mov ebx, 1
lea ecx, [esp + 0x78]
call dword [0x60fc50]
add esp, 0xcc
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
cmp eax, 6
je 0x4f2a50
cmp eax, 9
jne 0x4f24a4
lea eax, [esp + 0x78]
lea ecx, [esp + 0x60]
mov dword [esp], eax
mov eax, dword [0x60ffd8]
mov dword [esp + 0x2c], eax
call eax
sub esp, 4
mov eax, dword [esp + 0x60]
mov edx, dword [eax + 0xc]
sub edx, dword [eax + 8]
mov eax, dword [esp + 0xe8]
mov eax, dword [eax]
mov dword [esp + 0x24], edx
mov eax, dword [eax + 4]
test eax, eax
jne 0x4f2c51
lea eax, [esp + 0x88]
mov dword [esp + 0x3c], 0x29
mov dword [esp + 0x30], eax
mov eax, 0xc
mov word [esp + 0x28], ax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4f2d80
movzx eax, word [esp + 0x28]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [0x610cac]
sub esp, 0xc
mov dword [esp + 0x18], eax
mov eax, edi
test al, al
movzx eax, word [esp + 0x28]
je 0x4f2810
or ah, 0x60
cmp word [ebp], ax
je 0x4f323a
movzx eax, word [esp + 0x28]
or ah, 0x20
mov word [ebp], ax
mov eax, dword [esp + 0x18]
mov dword [ebp + 8], eax
mov dword [esp], 4
call fcn.004f9c48
mov edx, dword [ebp + 8]
or word [ebp], 0x4000
mov dword [ebp + 8], eax
mov dword [eax], edx
lea ecx, [esp + 0x60]
mov ebx, 1
call fcn.00545cb0
jmp 0x4f1d8c
lea eax, [esp + 0x98]
lea edx, [esp + 0x78]
mov ecx, eax
mov dword [esp + 0x18], eax
mov dword [esp], edx
call dword [0x60ffc0]
sub esp, 4
mov eax, dword [esp + 0x98]
mov edx, dword [eax + 0xc]
sub edx, dword [eax + 8]
mov dword [esp + 4], 0
mov dword [esp], 8
mov esi, edx
mov dword [esp + 0x28], edx
mov dword [esp + 8], edx
call dword [0x610cac]
sub esp, 0xc
test esi, esi
mov dword [esp + 0x24], eax
mov dword [esp + 0xa8], 0
jle 0x4f272b
xor eax, eax
lea ebx, [esp + 0xa8]
mov esi, dword [0x610cc8]
mov dword [esp + 0xe4], ebp
mov dword [esp + 0x2c], edi
jmp 0x4f1f47
cmp eax, 0xffffffff
je 0x4f1f2c
lock sub dword [ebp], 1
je 0x4f1fa9
mov eax, dword [esp + 0xa8]
add eax, 1
cmp eax, dword [esp + 0x28]
mov dword [esp + 0xa8], eax
jge 0x4f2720
mov edx, dword [esp + 0x98]
add eax, dword [edx + 8]
mov ebp, dword [edx + eax*4 + 0x10]
mov eax, dword [ebp]
add eax, 1
cmp eax, 1
ja 0x4f2320
mov eax, dword [ebp + 4]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
add eax, ebp
mov dword [esp], eax
call dword [0x610cd0]
sub esp, 8
mov edi, eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 4], ebx
mov dword [esp], eax
call esi
sub esp, 0xc
mov dword [esp], edi
call dword [0x610cd4]
mov eax, dword [ebp]
sub esp, 4
test eax, eax
jne 0x4f1f20
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], ebp
call dword [0x60f7f4]
jmp 0x4f1f2c
mov eax, edi
test al, al
je 0x4f2914
cmp word [ebp], 0x4013
je 0x4f3674
mov eax, 0x4013
lea ecx, [esp + 0x78]
mov word [ebp], ax
mov dword [esp], 0
call dword [0x60ffe8]
sub esp, 4
mov ebx, eax
mov dword [esp], 4
call fcn.004f9c48
mov dword [eax], ebx
mov dword [ebp + 8], eax
mov ebx, edi
jmp 0x4f1d8c
mov eax, edi
test al, al
je 0x4f2032
cmp word [ebp], 0x4009
je 0x4f30c0
mov eax, 9
lea ecx, [esp + 0x78]
mov word [ebp], ax
call dword [0x610000]
cmp eax, 0x40
je 0x4f2fe8
lea ebx, [esp + 0xa8]
mov esi, dword [0x610148]
mov ecx, ebx
call esi
mov dword [esp + 4], ebx
mov dword [esp], 0x40
lea ecx, [esp + 0x78]
call dword [0x60ffec]
sub esp, 8
test al, al
lea eax, [esp + 0x98]
mov dword [esp + 0x18], eax
je 0x4f2fa0
mov dword [esp], ebx
mov ecx, eax
call dword [0x610144]
sub esp, 4
mov ecx, ebx
mov ebx, dword [0x61014c]
call ebx
mov esi, dword [esp + 0x18]
mov eax, esi
call fcn.004eea60
jmp 0x4f187d
mov eax, edi
test al, al
je 0x4f28c4
cmp word [ebp], 0x4012
je 0x4f37f1
mov eax, 0x4012
lea ecx, [esp + 0x78]
mov word [ebp], ax
call dword [0x610000]
cmp eax, 0x24
je 0x4f2f70
lea eax, [esp + 0xa8]
mov dword [esp], 0x24
mov dword [esp + 4], eax
lea ecx, [esp + 0x78]
mov ebx, 0
call dword [0x60ffec]
sub esp, 8
test al, al
cmovne bx, word [esp + 0xa8]
mov dword [esp], 2
call fcn.004f9c48
mov word [eax], bx
mov dword [ebp + 8], eax
mov ebx, edi
jmp 0x4f1d8c
lea ecx, [esp + 0x78]
call dword [0x610000]
cmp eax, 0x4a
je 0x4f2f40
lea ebx, [esp + 0xa8]
mov esi, dword [0x6101a4]
mov ecx, ebx
call esi
mov dword [esp + 4], ebx
mov dword [esp], 0x4a
lea ecx, [esp + 0x78]
call dword [0x60ffec]
sub esp, 8
test al, al
je 0x4f3016
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xa8], 0
mov dword [esp + 0x98], eax
lea eax, [esp + 0x98]
mov dword [esp + 0x18], eax
mov ecx, ebx
mov ebx, dword [0x6101a8]
call ebx
mov ecx, dword [esp + 0x18]
call dword [0x610284]
mov ecx, dword [esp + 0x18]
mov esi, eax
call ebx
mov eax, edi
test al, al
je 0x4f2823
movzx eax, word [ebp]
test ah, 0x40
je 0x4f2fa9
and eax, 0xbfff
cmp eax, 0x17
ja case.0x4f21d9.0
jmp dword [eax*4 + 0x5d8308]
mov eax, edi
test al, al
je 0x4f2ab0
cmp word [ebp], 0x4003
je 0x4f3694
mov ebx, 0x4003
lea ecx, [esp + 0x78]
mov word [ebp], bx
call dword [0x610000]
cmp eax, 0x43
je 0x4f32e9
lea esi, [esp + 0xa8]
mov ebx, dword [0x610174]
mov ecx, esi
call ebx
mov dword [esp + 4], esi
mov dword [esp], 0x43
lea ecx, [esp + 0x78]
call dword [0x60ffec]
sub esp, 8
test al, al
je 0x4f338d
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xa0], eax
movzx eax, word [esp + 0xb4]
mov word [esp + 0xa4], ax
lea eax, [esp + 0x98]
mov dword [esp + 0x18], eax
mov ebx, dword [esp + 0x18]
mov ecx, ebx
call dword [0x610260]
mov ecx, ebx
mov dword [esp + 0x18], eax
call dword [0x610270]
mov ecx, ebx
mov esi, eax
call dword [0x610264]
mov dword [esp], 4
mov ebx, eax
shl esi, 8
call fcn.004f9c48
movzx edx, byte [esp + 0x18]
shl ebx, 0x10
movzx esi, si
and ebx, 0xff0000
or ebx, esi
or edx, ebx
mov ebx, edi
mov dword [eax], edx
mov dword [ebp + 8], eax
jmp 0x4f1d8c
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [0x60f7f4]
jmp 0x4f1d39
mov eax, dword [ebp + 8]
mov ebx, edi
mov dword [eax], esi
jmp 0x4f1d8c
mov eax, dword [ebp + 8]
mov ebx, edi
mov word [eax], si
jmp 0x4f1d8c
lock add dword [ebp], 1
jmp 0x4f1f64
lea eax, [esp + 0x70]
mov dword [esp + 0xa8], 2
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov ecx, eax
mov dword [esp + 0x38], eax
lea eax, [esp + 0xa8]
mov dword [esp + 0xb8], 0x5d82f7
mov dword [esp], eax
call dword [0x60fe80]
sub esp, 4
mov eax, dword [esp + 0x70]
cmp dword [eax + 0x18], 1
jle 0x4f2392
or dword [eax + 0x2c], 1
lea ecx, [esp + 0x78]
mov eax, dword [esp + 0x2c]
call eax
lea ecx, [esp + 0x88]
mov dword [esp], eax
mov dword [esp + 4], 0xffffffff
mov eax, dword [esp + 0x34]
call eax
sub esp, 8
lea edx, [esp + 0x88]
lea eax, [esp + 0x98]
call fcn.004eeb80
mov eax, dword [esp + 0x98]
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x38]
mov edx, dword [eax + 4]
mov dword [esp + 4], edx
add eax, dword [eax + 0xc]
mov dword [esp], eax
call dword [0x60fa54]
sub esp, 0xc
mov ecx, dword [esp + 0x70]
cmp byte [ecx + 0x14], 0
je 0x4f240d
mov dword [esp], 0x20
call dword [0x60f91c]
sub esp, 4
mov eax, dword [esp + 0x98]
mov edx, dword [eax]
test edx, edx
je 0x4f31f9
cmp edx, 0xffffffff
je 0x4f2434
lock sub dword [eax], 1
mov eax, dword [esp + 0x98]
je 0x4f31f9
mov eax, dword [esp + 0x88]
mov edx, dword [eax]
test edx, edx
je 0x4f31db
cmp edx, 0xffffffff
je 0x4f245b
lock sub dword [eax], 1
mov eax, dword [esp + 0x88]
je 0x4f31db
mov ecx, dword [esp + 0x38]
call dword [0x60fa58]
xor eax, eax
mov dword [ebp + 8], 0
mov word [ebp], ax
mov eax, dword [esp + 0x6c]
mov edx, dword [eax]
test edx, edx
je 0x4f248b
cmp edx, 0xffffffff
je 0x4f24a4
lock sub dword [eax], 1
mov eax, dword [esp + 0x6c]
jne 0x4f24a4
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [0x60f7f4]
xor ebx, ebx
jmp 0x4f1d8c
cmp eax, 0x21
jne 0x4f24a4
mov eax, edi
test al, al
je 0x4f29c0
cmp word [ebp], 0x4002
je 0x4f37a2
mov edx, 0x4002
lea ecx, [esp + 0x78]
mov word [ebp], dx
call dword [0x610000]
cmp eax, 0x21
je 0x4f2f70
lea eax, [esp + 0xa8]
mov dword [esp], 0x21
mov dword [esp + 4], eax
jmp 0x4f20f6
mov eax, edi
test al, al
je 0x4f2940
cmp word [ebp], 0x4010
je 0x4f381b
mov eax, 0x4010
lea ecx, [esp + 0x78]
mov word [ebp], ax
mov dword [esp], 0
call dword [0x60ffc8]
jmp 0x4f1b22
mov eax, edi
test al, al
je 0x4f29f3
cmp word [ebp], 0x4004
je 0x4f35d1
mov eax, 0x4004
lea ecx, [esp + 0x78]
mov ebx, edi
mov word [ebp], ax
mov dword [esp], 0
call dword [0x60fff4]
sub esp, 4
fstp qword [esp + 0x18]
mov dword [esp], 4
call fcn.004f9c48
fld qword [esp + 0x18]
fstp dword [eax]
mov dword [ebp + 8], eax
jmp 0x4f1d8c
mov eax, edi
test al, al
je 0x4f2970
cmp word [ebp], 0x4007
je 0x4f3766
lea eax, [esp + 0x78]
mov edx, 0x4007
lea ecx, [esp + 0xa8]
mov word [ebp], dx
mov ebx, edi
mov dword [esp], eax
call dword [0x60ffac]
sub esp, 4
lea eax, [esp + 0xa8]
call fcn.004ee830
fstp qword [esp + 0x18]
mov dword [esp], 8
call fcn.004f9c48
fld qword [esp + 0x18]
lea ecx, [esp + 0xa8]
mov dword [ebp + 8], eax
fstp qword [eax]
call dword [0x60fc88]
jmp 0x4f1d8c
mov eax, edi
test al, al
jne 0x4f2890
mov eax, 0x15
lea ecx, [esp + 0x78]
mov ebx, 1
mov word [ebp], ax
mov dword [esp], 0
call dword [0x60ffb8]
sub esp, 4
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
jmp 0x4f1d8c
mov eax, edi
test al, al
je 0x4f2652
cmp word [ebp], 0x4008
je 0x4f3156
mov eax, 8
lea ecx, [esp + 0xa8]
mov word [ebp], ax
lea eax, [esp + 0x78]
mov dword [esp], eax
call dword [0x60fff8]
sub esp, 4
mov eax, dword [esp + 0xa8]
mov edx, dword [eax + 4]
mov dword [esp + 4], edx
add eax, dword [eax + 0xc]
mov dword [esp], eax
call dword [0x610cd0]
sub esp, 8
mov dword [ebp + 8], eax
mov eax, dword [esp + 0xa8]
mov edx, dword [eax]
test edx, edx
je 0x4f2b90
cmp edx, 0xffffffff
je 0x4f26b9
lock sub dword [eax], 1
mov eax, dword [esp + 0xa8]
je 0x4f2b90
mov eax, edi
test al, al
je 0x4f1d87
mov dword [esp], 4
mov ebx, edi
call fcn.004f9c48
mov edx, dword [ebp + 8]
or word [ebp], 0x4000
mov dword [ebp + 8], eax
mov dword [eax], edx
jmp 0x4f1d8c
mov eax, edi
test al, al
je 0x4f2a20
cmp word [ebp], 0x4003
je 0x4f35f1
mov eax, 0x4003
lea ecx, [esp + 0x78]
mov word [ebp], ax
mov dword [esp], 0
call dword [0x60ffc8]
jmp 0x4f2000
mov ebp, dword [esp + 0xe4]
mov edi, dword [esp + 0x2c]
mov eax, edi
test al, al
je 0x4f27e0
cmp word [ebp], 0x6008
je 0x4f325d
mov eax, dword [esp + 0x24]
mov edi, 0x2008
mov word [ebp], di
mov dword [ebp + 8], eax
mov dword [esp], 4
call fcn.004f9c48
mov edx, dword [ebp + 8]
or word [ebp], 0x4000
mov dword [ebp + 8], eax
mov dword [eax], edx
mov ecx, dword [esp + 0x18]
call fcn.005459a0
jmp 0x4f1d87
mov eax, edi
test al, al
jne 0x4f16fb
mov eax, 0xa
mov dword [ebp + 8], 0x80020004
mov word [ebp], ax
jmp 0x4f1d87
cmp word [ebp], 0x400b
je 0x4f35b5
mov eax, 0x400b
lea ecx, [esp + 0x78]
mov word [ebp], ax
call dword [0x60ffd0]
movzx ebx, al
mov dword [esp], 2
neg ebx
call fcn.004f9c48
mov word [eax], bx
mov dword [ebp + 8], eax
mov ebx, edi
jmp 0x4f1d8c
mov eax, dword [esp + 0x24]
mov esi, 0x2008
mov word [ebp], si
mov dword [ebp + 8], eax
jmp 0x4f276b
mov ecx, 0x2011
mov dword [ebp + 8], esi
mov word [ebp], cx
jmp 0x4f19f4
or ah, 0x20
mov word [ebp], ax
mov eax, dword [esp + 0x18]
mov dword [ebp + 8], eax
jmp 0x4f1e87
mov eax, 3
mov dword [ebp + 8], esi
mov word [ebp], ax
jmp 0x4f1d87
movzx eax, word [ebp]
cmp ax, 0x4006
je 0x4f3217
cmp ax, 0x4014
je 0x4f3217
mov ebx, 0x4014
lea ecx, [esp + 0x78]
mov word [ebp], bx
mov dword [esp], 0
call dword [0x60ffb0]
sub esp, 4
mov ebx, eax
mov esi, edx
mov dword [esp], 8
call fcn.004f9c48
mov dword [eax], ebx
mov dword [eax + 4], esi
mov ebx, edi
mov dword [ebp + 8], eax
jmp 0x4f1d8c
movzx eax, word [ebp]
cmp ax, 0x4006
je 0x4f3611
cmp ax, 0x4015
je 0x4f383b
mov edx, 0x4015
lea ecx, [esp + 0x78]
mov word [ebp], dx
mov dword [esp], 0
call dword [0x60ffb8]
jmp 0x4f2866
mov eax, 0x12
lea ecx, [esp + 0x78]
mov word [ebp], ax
call dword [0x610000]
cmp eax, 0x24
je 0x4f2f82
lea eax, [esp + 0xa8]
mov dword [esp], 0x24
mov dword [esp + 4], eax
lea ecx, [esp + 0x78]
call dword [0x60ffec]
sub esp, 8
test al, al
mov eax, 0
cmovne ax, word [esp + 0xa8]
jmp 0x4f1d83
mov esi, 0x13
lea ecx, [esp + 0x78]
mov ebx, 1
mov word [ebp], si
mov dword [esp], 0
call dword [0x60ffe8]
sub esp, 4
mov dword [ebp + 8], eax
jmp 0x4f1d8c
mov esi, 0x10
lea ecx, [esp + 0x78]
mov ebx, 1
mov word [ebp], si
mov dword [esp], 0
call dword [0x60ffc8]
sub esp, 4
mov byte [ebp + 8], al
jmp 0x4f1d8c
mov eax, 7
lea ecx, [esp + 0xa8]
mov ebx, 1
mov word [ebp], ax
lea eax, [esp + 0x78]
mov dword [esp], eax
call dword [0x60ffac]
sub esp, 4
lea eax, [esp + 0xa8]
call fcn.004ee830
lea ecx, [esp + 0xa8]
fstp qword [ebp + 8]
call dword [0x60fc88]
jmp 0x4f1d8c
mov eax, 2
lea ecx, [esp + 0x78]
mov word [ebp], ax
call dword [0x610000]
cmp eax, 0x21
je 0x4f2f82
lea eax, [esp + 0xa8]
mov dword [esp], 0x21
mov dword [esp + 4], eax
jmp 0x4f28f2
mov eax, 4
lea ecx, [esp + 0x78]
mov ebx, 1
mov word [ebp], ax
mov dword [esp], 0
call dword [0x60fff4]
sub esp, 4
fstp dword [ebp + 8]
jmp 0x4f1d8c
mov eax, 3
lea ecx, [esp + 0x78]
mov ebx, 1
mov word [ebp], ax
mov dword [esp], 0
call dword [0x60ffc8]
sub esp, 4
mov dword [ebp + 8], eax
jmp 0x4f1d8c
mov esi, 5
lea ecx, [esp + 0x78]
mov ebx, 1
mov word [ebp], si
mov dword [esp], 0
call dword [0x60fff4]
sub esp, 4
fstp qword [ebp + 8]
jmp 0x4f1d8c
mov ecx, 0x11
mov ebx, 1
mov word [ebp], cx
mov dword [esp], 0
lea ecx, [esp + 0x78]
call dword [0x60ffe8]
sub esp, 4
mov byte [ebp + 8], al
jmp 0x4f1d8c
mov ecx, 3
mov word [ebp], cx
lea ecx, [esp + 0x78]
call dword [0x610000]
cmp eax, 0x43
je 0x4f332c
lea ebx, [esp + 0xa8]
mov esi, dword [0x610174]
mov ecx, ebx
call esi
mov dword [esp + 4], ebx
mov dword [esp], 0x43
lea ecx, [esp + 0x78]
call dword [0x60ffec]
sub esp, 8
test al, al
je 0x4f33a1
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xa0], eax
movzx eax, word [esp + 0xb4]
mov word [esp + 0xa4], ax
lea eax, [esp + 0x98]
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x18]
mov ecx, edi
call dword [0x610260]
mov ecx, edi
mov esi, eax
call dword [0x610270]
mov ebx, eax
mov ecx, edi
shl ebx, 8
call dword [0x610264]
shl eax, 0x10
movzx ebx, bx
and eax, 0xff0000
or ebx, eax
mov eax, esi
movzx esi, al
or esi, ebx
mov ebx, 1
mov dword [ebp + 8], esi
jmp 0x4f1d8c
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x60f7f4]
jmp 0x4f26b9
lea ecx, [esp + 0x78]
mov eax, dword [esp + 0x2c]
call eax
mov dword [esp + 4], 0x5d820b
mov dword [esp], eax
call ebx
test eax, eax
jne 0x4f329f
mov ebx, 9
lea ecx, [esp + 0x78]
mov word [ebp], bx
call dword [0x60fc00]
mov eax, dword [eax]
mov dword [ebp + 8], eax
mov eax, edi
test al, al
je 0x4f1bd3
or word [ebp], 0x4000
jmp 0x4f1bd3
mov eax, dword [esp + 0x98]
add eax, dword [eax + 0xc]
mov dword [esp], esi
mov dword [esp + 0x18], eax
lea eax, [esp + 0xa8]
mov dword [esp + 4], eax
call dword [0x610ca4]
sub esp, 8
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xa8]
mov dword [esp + 8], ebx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.004fa35c
mov dword [esp], esi
call dword [0x610ccc]
sub esp, 4
jmp 0x4f19b8
mov dword [esp], str.QList_
mov ecx, dword [esp + 0xe8]
call dword [0x60fd50]
sub esp, 4
test al, al
je 0x4f1df0
mov eax, dword [esp + 0xe8]
lea ebx, [esp + 0xa8]
mov ecx, ebx
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 4], 6
sub eax, 7
mov dword [esp + 8], eax
mov eax, dword [esp + 0xe8]
mov dword [esp], eax
call dword [0x60fd5c]
sub esp, 0xc
mov eax, dword [esp + 0xa8]
add eax, dword [eax + 0xc]
mov dword [esp], eax
call dword [0x60fbfc]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xa8]
mov edx, dword [eax]
test edx, edx
je 0x4f38cc
cmp edx, 0xffffffff
je 0x4f2ce5
lock sub dword [eax], 1
mov eax, dword [esp + 0xa8]
je 0x4f38cc
mov eax, dword [esp + 0x3c]
cmp eax, 0x10
ja case.0x4f2cee.0
jmp dword [eax*4 + 0x5d8368]
lea eax, [esp + 0x90]
mov word [esp + 0x28], 3
mov dword [esp + 0x30], eax
jmp 0x4f1e0d
lea eax, [esp + 0x90]
mov word [esp + 0x28], 0xb
mov dword [esp + 0x30], eax
jmp 0x4f1e0d
lea eax, [esp + 0x90]
mov word [esp + 0x28], 7
mov dword [esp + 0x30], eax
jmp 0x4f1e0d
lea eax, [esp + 0x90]
mov word [esp + 0x28], 5
mov dword [esp + 0x30], eax
jmp 0x4f1e0d
lea eax, [esp + 0x90]
mov word [esp + 0x28], 0x14
mov dword [esp + 0x30], eax
jmp 0x4f1e0d
lea eax, [esp + 0x88]
mov word [esp + 0x28], 0xc
mov dword [esp + 0x30], eax
jmp 0x4f1e0d
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x64]
mov edx, dword [eax + 8]
mov eax, dword [eax + edx*4 + 0x10]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
call eax
sub esp, 4
mov eax, dword [esp + 0x64]
mov edx, dword [eax + 0xc]
sub edx, dword [eax + 8]
mov dword [esp + 0x54], edx
jne 0x4f33b5
lea ecx, [esp + 0x64]
call fcn.00545cb0
movzx eax, word [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov dword [esp + 4], 0
mov dword [esp + 8], ebx
mov dword [esp], eax
call dword [0x610cac]
sub esp, 0xc
test ebx, ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x70], 0
jle 0x4f1e3e
mov eax, dword [0x610ce0]
lea edx, [esp + 0x98]
lea ecx, [esp + 0x88]
lea ebx, [esp + 0xa8]
mov dword [esp + 0xe4], ebp
mov dword [esp + 0x48], edi
mov ebp, edx
mov edi, ecx
mov dword [esp + 0x40], eax
mov eax, dword [0x60fffc]
mov dword [esp + 0x2c], eax
mov eax, dword [0x60f84c]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x38], eax
mov eax, dword [0x610cc8]
mov dword [esp + 0x44], eax
xor eax, eax
mov edx, dword [esp + 0x60]
mov ecx, ebx
add eax, dword [edx + 8]
mov eax, dword [edx + eax*4 + 0x10]
mov dword [esp], eax
call esi
sub esp, 4
mov eax, dword [esp + 0x3c]
cmp eax, 0x29
je 0x4f2e6b
mov dword [esp], eax
mov ecx, ebx
call dword [0x60fc04]
sub esp, 4
mov eax, dword [esp + 0x40]
mov dword [esp], edi
call eax
sub esp, 4
mov ecx, ebx
mov eax, dword [esp + 0x2c]
call eax
mov ecx, ebp
mov dword [esp], eax
mov dword [esp + 4], 0xffffffff
mov eax, dword [esp + 0x34]
call eax
sub esp, 8
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebp
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.004f1630
mov eax, dword [esp + 0x98]
mov edx, dword [eax]
test edx, edx
je 0x4f2f21
cmp edx, 0xffffffff
je 0x4f2ecc
lock sub dword [eax], 1
mov eax, dword [esp + 0x98]
je 0x4f2f21
mov eax, dword [esp + 0x30]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x18]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
call eax
sub esp, 0xc
mov dword [esp], edi
call fcn.004f7d20
mov ecx, ebx
call dword [0x60fc50]
mov eax, dword [esp + 0x70]
add eax, 1
cmp eax, dword [esp + 0x24]
mov dword [esp + 0x70], eax
jl 0x4f2e3f
mov ebp, dword [esp + 0xe4]
mov edi, dword [esp + 0x48]
jmp 0x4f1e3e
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [0x60f7f4]
jmp 0x4f2ecc
lea ecx, [esp + 0x78]
call dword [0x610004]
lea edx, [esp + 0x98]
mov dword [esp], eax
mov dword [esp + 0x18], edx
mov ecx, edx
call dword [0x6101a0]
mov ebx, dword [0x6101a8]
sub esp, 4
jmp 0x4f21a2
lea ecx, [esp + 0x78]
call dword [0x610004]
movzx ebx, word [eax]
jmp 0x4f2113
lea ecx, [esp + 0x78]
call dword [0x610004]
movzx eax, word [eax]
jmp 0x4f1d83
mov ecx, eax
call esi
jmp 0x4f1868
mov ecx, eax
call esi
jmp 0x4f2098
mov eax, 3
mov dword [ebp + 8], esi
mov word [ebp], ax
jmp 0x4f188e
lea esi, [esp + 0x98]
lea ecx, [esp + 0x78]
call dword [0x610004]
mov dword [esp + 0x18], esi
mov dword [esp], eax
mov ecx, esi
call dword [0x6101c0]
mov ebx, dword [0x6101c8]
sub esp, 4
jmp 0x4f1872
lea ecx, [esp + 0x78]
call dword [0x610004]
lea edx, [esp + 0x98]
mov dword [esp], eax
mov dword [esp + 0x18], edx
mov ecx, edx
call dword [0x610144]
mov ebx, dword [0x61014c]
sub esp, 4
jmp 0x4f20a2
lea eax, [esp + 0x98]
mov dword [esp + 0x18], eax
mov ecx, eax
call esi
jmp 0x4f2198
mov eax, dword [ebp + 8]
mov eax, dword [eax]
test eax, eax
je 0x4f303e
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
lea ecx, [esp + 0x78]
call dword [0x610000]
cmp eax, 0x41
je 0x4f3870
lea ebx, [esp + 0xa8]
mov esi, dword [0x6101c4]
mov ecx, ebx
call esi
mov dword [esp + 4], ebx
mov dword [esp], 0x41
lea ecx, [esp + 0x78]
call dword [0x60ffec]
sub esp, 8
test al, al
lea eax, [esp + 0x98]
mov dword [esp + 0x18], eax
je 0x4f385e
mov dword [esp], ebx
mov ecx, eax
call dword [0x6101c0]
sub esp, 4
mov ecx, ebx
mov ebx, dword [0x6101c8]
call ebx
mov esi, dword [ebp + 8]
mov ebp, dword [esp + 0x18]
mov eax, ebp
call fcn.004ee6c0
mov ecx, ebp
mov dword [esi], eax
call ebx
mov ebx, edi
jmp 0x4f1d8c
mov eax, dword [ebp + 8]
mov eax, dword [eax]
test eax, eax
je 0x4f30d4
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
lea ecx, [esp + 0x78]
call dword [0x610000]
cmp eax, 0x40
je 0x4f389e
lea ebx, [esp + 0xa8]
mov esi, dword [0x610148]
mov ecx, ebx
call esi
mov dword [esp + 4], ebx
mov dword [esp], 0x40
lea ecx, [esp + 0x78]
call dword [0x60ffec]
sub esp, 8
test al, al
lea eax, [esp + 0x98]
mov dword [esp + 0x18], eax
je 0x4f3867
mov dword [esp], ebx
mov ecx, eax
call dword [0x610144]
sub esp, 4
mov ecx, ebx
mov ebx, dword [0x61014c]
call ebx
mov esi, dword [ebp + 8]
mov ebp, dword [esp + 0x18]
mov eax, ebp
call fcn.004eea60
mov ecx, ebp
mov dword [esi], eax
call ebx
mov ebx, edi
jmp 0x4f1d8c
mov eax, dword [ebp + 8]
mov eax, dword [eax]
test eax, eax
je 0x4f316b
mov dword [esp], eax
call dword [0x610cd4]
sub esp, 4
lea eax, [esp + 0x78]
lea ecx, [esp + 0xa8]
mov dword [esp], eax
call dword [0x60fff8]
sub esp, 4
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0xa8]
mov edx, dword [eax + 4]
mov dword [esp + 4], edx
add eax, dword [eax + 0xc]
mov dword [esp], eax
call dword [0x610cd0]
sub esp, 8
mov dword [ebx], eax
mov eax, dword [esp + 0xa8]
mov edx, dword [eax]
test edx, edx
je 0x4f336f
cmp edx, 0xffffffff
je 0x4f31cb
lock sub dword [eax], 1
mov eax, dword [esp + 0xa8]
je 0x4f336f
mov eax, 0x4008
mov ebx, edi
mov word [ebp], ax
jmp 0x4f1d8c
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [0x60f7f4]
jmp 0x4f245b
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [0x60f7f4]
jmp 0x4f2434
mov ebx, dword [ebp + 8]
lea ecx, [esp + 0x78]
mov dword [esp], 0
call dword [0x60ffb0]
sub esp, 4
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov ebx, edi
jmp 0x4f1d8c
mov eax, dword [ebp + 8]
mov edx, dword [eax]
test edx, edx
je 0x4f3252
mov dword [esp], edx
call dword [0x610cb0]
mov eax, dword [ebp + 8]
sub esp, 4
mov edi, dword [esp + 0x18]
mov dword [eax], edi
jmp 0x4f1e87
mov eax, dword [ebp + 8]
mov edx, dword [eax]
test edx, edx
je 0x4f3275
mov dword [esp], edx
call dword [0x610cb0]
mov eax, dword [ebp + 8]
sub esp, 4
mov edi, dword [esp + 0x24]
mov dword [eax], edi
jmp 0x4f276b
mov eax, dword [ebp + 8]
mov edx, dword [eax]
test edx, edx
je 0x4f3298
mov dword [esp], edx
call dword [0x610cb0]
mov eax, dword [ebp + 8]
sub esp, 4
mov dword [eax], esi
jmp 0x4f19f4
lea ecx, [esp + 0x78]
mov eax, dword [esp + 0x2c]
call eax
mov dword [esp + 4], str.IUnknown
mov dword [esp], eax
call ebx
test eax, eax
jne 0x4f38fc
mov eax, edi
test al, al
jne 0x4f2330
mov ecx, 0xd
mov word [ebp], cx
jmp 0x4f1bb5
mov eax, dword [ebp + 8]
mov ebx, 1
mov dword [eax], 0x80020004
jmp 0x4f1d8c
lea ecx, [esp + 0x78]
call dword [0x610004]
mov edx, dword [eax]
mov dword [esp + 0x98], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x9c], edx
mov edx, dword [eax + 8]
mov dword [esp + 0xa0], edx
movzx eax, word [eax + 0xc]
mov word [esp + 0xa4], ax
lea eax, [esp + 0x98]
mov dword [esp + 0x18], eax
jmp 0x4f2288
lea ecx, [esp + 0x78]
call dword [0x610004]
mov edx, dword [eax]
mov dword [esp + 0x98], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x9c], edx
mov edx, dword [eax + 8]
mov dword [esp + 0xa0], edx
movzx eax, word [eax + 0xc]
mov word [esp + 0xa4], ax
lea eax, [esp + 0x98]
mov dword [esp + 0x18], eax
jmp 0x4f2b42
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x60f7f4]
jmp 0x4f31cb
lea eax, [esp + 0x98]
mov dword [esp + 0x18], eax
mov ecx, eax
call ebx
jmp 0x4f2288
lea eax, [esp + 0x98]
mov dword [esp + 0x18], eax
mov ecx, eax
call esi
jmp 0x4f2b42
mov ebx, dword [esp + 0x24]
lea eax, [esp + 0xa8]
mov dword [esp + 0xac], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb0], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 2
mov dword [esp + 0xa8], ebx
mov dword [esp], 0xc
call dword [0x610ca8]
sub esp, 0xc
test ebx, ebx
mov dword [esp + 0x18], eax
jle 0x4f35a7
mov dword [esp + 0x34], 0
mov dword [esp + 0xe4], ebp
mov dword [esp + 0x58], edi
mov dword [esp + 0x50], esi
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x68]
mov dword [esp + 0x70], edx
add edx, dword [eax + 8]
mov eax, dword [eax + edx*4 + 0x10]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
call eax
sub esp, 4
mov edx, dword [esp + 0x68]
mov esi, dword [esp + 0x54]
mov eax, dword [edx + 8]
mov ecx, dword [edx + 0xc]
sub ecx, eax
cmp ecx, esi
cmovg ecx, esi
test ecx, ecx
mov dword [esp + 0x38], ecx
jle 0x4f3580
mov ecx, dword [0x610ce0]
lea esi, [esp + 0x98]
lea edi, [esp + 0x88]
lea ebp, [esp + 0x6c]
xor ebx, ebx
mov dword [esp + 0x4c], ecx
mov ecx, dword [0x60fffc]
mov dword [esp + 0x48], ecx
mov ecx, dword [0x60f84c]
mov dword [esp + 0x44], ecx
lea ecx, [esp + 0x70]
mov dword [esp + 0x40], ecx
mov ecx, dword [0x610cc8]
mov dword [esp + 0x3c], ecx
add eax, ebx
mov ecx, esi
mov eax, dword [edx + eax*4 + 0x10]
mov dword [esp], eax
mov eax, dword [esp + 0x50]
call eax
sub esp, 4
mov eax, dword [esp + 0x4c]
mov dword [esp], edi
call eax
sub esp, 4
mov ecx, esi
mov eax, dword [esp + 0x48]
call eax
mov ecx, ebp
mov dword [esp], eax
mov dword [esp + 4], 0xffffffff
mov eax, dword [esp + 0x44]
call eax
sub esp, 8
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebp
mov dword [esp + 4], edi
mov dword [esp], esi
call fcn.004f1630
mov eax, dword [esp + 0x6c]
mov edx, dword [eax]
test edx, edx
je 0x4f3563
cmp edx, 0xffffffff
je 0x4f351a
lock sub dword [eax], 1
mov eax, dword [esp + 0x6c]
je 0x4f3563
mov eax, dword [esp + 0x30]
mov dword [esp + 0x74], ebx
add ebx, 1
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x18]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
call eax
sub esp, 0xc
mov dword [esp], edi
call fcn.004f7d20
mov ecx, esi
call dword [0x60fc50]
cmp ebx, dword [esp + 0x38]
je 0x4f3580
mov edx, dword [esp + 0x68]
mov eax, dword [edx + 8]
jmp 0x4f34ab
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [0x60f7f4]
jmp 0x4f351a
lea ecx, [esp + 0x68]
call fcn.00545cb0
add dword [esp + 0x34], 1
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 0x24]
jne 0x4f3423
mov ebp, dword [esp + 0xe4]
mov edi, dword [esp + 0x58]
lea ecx, [esp + 0x64]
call fcn.00545cb0
jmp 0x4f1e3e
lea ecx, [esp + 0x78]
mov ebx, edi
call dword [0x60ffd0]
mov edx, dword [ebp + 8]
movzx eax, al
neg eax
mov word [edx], ax
jmp 0x4f1d8c
mov dword [esp], 0
lea ecx, [esp + 0x78]
mov ebx, edi
call dword [0x60fff4]
mov eax, dword [ebp + 8]
sub esp, 4
fstp dword [eax]
jmp 0x4f1d8c
mov ebx, dword [ebp + 8]
lea ecx, [esp + 0x78]
mov dword [esp], 0
call dword [0x60ffc8]
sub esp, 4
mov dword [ebx], eax
mov ebx, edi
jmp 0x4f1d8c
lea ecx, [esp + 0x78]
mov dword [esp], 0
mov ebx, edi
call dword [0x60ffb8]
mov ecx, dword [ebp + 8]
sub esp, 4
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4f1d8c
mov dword [esp], 0
lea ecx, [esp + 0x78]
mov ebx, edi
call dword [0x60ffe8]
mov edx, dword [ebp + 8]
sub esp, 4
mov byte [edx], al
jmp 0x4f1d8c
mov ebx, dword [ebp + 8]
lea ecx, [esp + 0x78]
mov dword [esp], 0
call dword [0x60fff4]
sub esp, 4
fstp qword [ebx]
mov ebx, edi
jmp 0x4f1d8c
mov ebx, dword [ebp + 8]
lea ecx, [esp + 0x78]
mov dword [esp], 0
call dword [0x60ffe8]
sub esp, 4
mov dword [ebx], eax
mov ebx, edi
jmp 0x4f1d8c
lea ecx, [esp + 0x78]
call dword [0x610000]
cmp eax, 0x43
je 0x4f3a03
lea esi, [esp + 0xa8]
mov ebx, dword [0x610174]
mov ecx, esi
call ebx
mov dword [esp + 4], esi
mov dword [esp], 0x43
lea ecx, [esp + 0x78]
call dword [0x60ffec]
sub esp, 8
test al, al
je 0x4f3a46
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xa0], eax
movzx eax, word [esp + 0xb4]
mov word [esp + 0xa4], ax
lea eax, [esp + 0x98]
mov dword [esp + 0x18], eax
mov ebx, dword [esp + 0x18]
mov ecx, ebx
call dword [0x610260]
mov ecx, ebx
mov esi, eax
mov dword [esp + 0x18], ebx
call dword [0x610270]
mov ebx, eax
mov ecx, dword [esp + 0x18]
shl ebx, 8
call dword [0x610264]
shl eax, 0x10
movzx ecx, bx
mov edx, dword [ebp + 8]
and eax, 0xff0000
mov ebx, edi
or eax, ecx
mov ecx, esi
movzx esi, cl
or esi, eax
mov dword [edx], esi
jmp 0x4f1d8c
lea eax, [esp + 0x78]
lea ecx, [esp + 0xa8]
mov dword [esp], eax
call dword [0x60ffac]
mov ebx, dword [ebp + 8]
sub esp, 4
lea eax, [esp + 0xa8]
call fcn.004ee830
lea ecx, [esp + 0xa8]
fstp qword [ebx]
mov ebx, edi
call dword [0x60fc88]
jmp 0x4f1d8c
mov ebx, dword [ebp + 8]
lea ecx, [esp + 0x78]
call dword [0x610000]
cmp eax, 0x21
je 0x4f38ea
lea eax, [esp + 0xa8]
mov dword [esp], 0x21
mov dword [esp + 4], eax
lea ecx, [esp + 0x78]
call dword [0x60ffec]
sub esp, 8
test al, al
mov eax, 0
cmovne ax, word [esp + 0xa8]
mov word [ebx], ax
mov ebx, edi
jmp 0x4f1d8c
mov ebx, dword [ebp + 8]
lea ecx, [esp + 0x78]
call dword [0x610000]
cmp eax, 0x24
je 0x4f38ea
lea eax, [esp + 0xa8]
mov dword [esp], 0x24
mov dword [esp + 4], eax
jmp 0x4f37ca
mov dword [esp], 0
lea ecx, [esp + 0x78]
mov ebx, edi
call dword [0x60ffc8]
mov edx, dword [ebp + 8]
sub esp, 4
mov byte [edx], al
jmp 0x4f1d8c
mov ebx, dword [ebp + 8]
lea ecx, [esp + 0x78]
mov dword [esp], 0
call dword [0x60ffb8]
sub esp, 4
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov ebx, edi
jmp 0x4f1d8c
mov ecx, eax
call esi
jmp 0x4f309b
mov ecx, eax
call esi
jmp 0x4f3131
lea esi, [esp + 0x98]
lea ecx, [esp + 0x78]
call dword [0x610004]
mov dword [esp + 0x18], esi
mov dword [esp], eax
mov ecx, esi
call dword [0x6101c0]
mov ebx, dword [0x6101c8]
sub esp, 4
jmp 0x4f30a5
lea esi, [esp + 0x98]
lea ecx, [esp + 0x78]
call dword [0x610004]
mov dword [esp + 0x18], esi
mov dword [esp], eax
mov ecx, esi
call dword [0x610144]
mov ebx, dword [0x61014c]
sub esp, 4
jmp 0x4f313b
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [0x60f7f4]
jmp 0x4f2ce5
lea ecx, [esp + 0x78]
call dword [0x610004]
movzx eax, word [eax]
jmp 0x4f37e7
lea eax, [esp + 0x6c]
mov dword [esp], eax
call dword [0x60fd1c]
test eax, eax
je 0x4f2472
mov eax, edi
test al, al
je 0x4f3a5a
lea eax, [esp + 0x70]
mov dword [esp + 0xa8], 2
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov ecx, eax
mov dword [esp + 0x38], eax
lea eax, [esp + 0xa8]
mov dword [esp + 0xb8], 0x5d82f7
mov dword [esp], eax
call dword [0x60fe80]
push edx
mov eax, dword [esp + 0x70]
cmp dword [eax + 0x18], 1
jle 0x4f397b
or dword [eax + 0x2c], 1
mov eax, dword [esp + 0x34]
lea edi, [esp + 0x88]
mov dword [esp + 4], 0xffffffff
mov dword [esp], str.subtype
mov ecx, edi
call eax
push eax
push eax
mov edx, edi
lea eax, [esp + 0x98]
mov dword [esp + 0x18], eax
call fcn.004eeb80
mov eax, dword [esp + 0x98]
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x38]
mov edx, dword [eax + 4]
mov dword [esp + 4], edx
add eax, dword [eax + 0xc]
mov dword [esp], eax
call dword [0x60fa54]
sub esp, 0xc
mov ecx, dword [esp + 0x70]
cmp byte [ecx + 0x14], 0
je 0x4f39ee
mov dword [esp], 0x20
call dword [0x60f91c]
push eax
mov ecx, dword [esp + 0x18]
call fcn.004fb860
mov ecx, edi
call fcn.004fb860
jmp 0x4f245b
lea ecx, [esp + 0x78]
call dword [0x610004]
mov edx, dword [eax]
mov dword [esp + 0x98], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x9c], edx
mov edx, dword [eax + 8]
mov dword [esp + 0xa0], edx
movzx eax, word [eax + 0xc]
mov word [esp + 0xa4], ax
lea eax, [esp + 0x98]
mov dword [esp + 0x18], eax
jmp 0x4f371d
lea eax, [esp + 0x98]
mov dword [esp + 0x18], eax
mov ecx, eax
call ebx
jmp 0x4f371d
lea ecx, [esp + 0x78]
call dword [0x610004]
mov ecx, dword [eax]
mov eax, dword [0x5d9b5c]
mov word [ebp], 9
mov dword [esp + 0xa8], eax
movzx eax, word [0x5d9b60]
add ecx, 8
mov word [esp + 0xac], ax
movzx eax, word [0x5d9b62]
mov word [esp + 0xae], ax
movzx eax, byte [0x5d9b64]
mov byte [esp + 0xb0], al
movzx eax, byte [0x5d9b65]
mov byte [esp + 0xb1], al
movzx eax, byte [0x5d9b66]
mov byte [esp + 0xb2], al
movzx eax, byte [0x5d9b67]
mov byte [esp + 0xb3], al
movzx eax, byte [0x5d9b68]
mov byte [esp + 0xb4], al
movzx eax, byte [0x5d9b69]
mov byte [esp + 0xb5], al
movzx eax, byte [0x5d9b6a]
mov byte [esp + 0xb6], al
movzx eax, byte [0x5d9b6b]
mov byte [esp + 0xb7], al
lea eax, [ebp + 8]
mov dword [esp + 4], eax
lea eax, [esp + 0xa8]
mov dword [esp], eax
call fcn.004df6f0
push eax
push eax
jmp 0x4f1bd3