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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xac
mov esi, dword [esp + 0xc4]
mov edi, dword [esp + 0xc0]
mov ebp, dword [esp + 0xcc]
movzx eax, word [esi]
mov dword [edi + 8], 0x80000000
mov dword [edi], 0
cmp ax, 0x2011
je 0x491f59
jbe 0x4910b0
cmp ax, 0x400d
je 0x491960
ja 0x491110
cmp ax, 0x4006
je 0x491600
jbe 0x4911d0
cmp ax, 0x4009
je 0x492170
ja 0x491ab4
cmp ax, 0x4007
je 0x491850
cmp ax, 0x4008
jne 0x4912c4
mov dword [esp + 8], 0xffffffff
mov eax, dword [esi + 8]
lea ebx, [esp + 0x70]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], ebx
call dword [0x57f15c]
mov dword [esp], ebx
lea ecx, [esp + 0x80]
call dword [0x57f190]
mov eax, dword [edi]
sub esp, 4
mov edx, dword [edi + 4]
mov ecx, eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x94], edx
movzx edx, byte [edi + 0xb]
mov ebx, dword [edi + 8]
mov dword [edi], eax
mov eax, dword [esp + 0x84]
and ebx, 0x3fffffff
mov dword [edi + 4], eax
mov eax, dword [esp + 0x88]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x80]
and eax, 0xc0000000
or eax, ebx
mov ebx, edx
and edx, 0xffffff80
mov dword [esp + 0x98], eax
shr eax, 0x18
and ebx, 0x40
and eax, 0x3f
or eax, ebx
or edx, eax
mov eax, dword [esp + 0x94]
mov byte [esp + 0x9b], dl
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x88], eax
call dword [0x57f1c0]
mov eax, dword [esp + 0x70]
mov edx, dword [eax]
test edx, edx
je 0x491092
cmp edx, 0xffffffff
je 0x49149d
lock sub dword [eax], 1
mov eax, dword [esp + 0x70]
jne 0x49149d
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x57ef28]
jmp 0x49149d
cmp ax, 0xd
je 0x491960
ja 0x491150
cmp ax, 6
je 0x4913e0
jbe 0x491190
cmp ax, 9
je 0x492170
ja 0x491ae0
cmp ax, 7
je 0x491700
cmp ax, 8
jne 0x4912c4
mov dword [esp + 8], 0xffffffff
lea ebx, [esp + 0x70]
mov eax, dword [esi + 8]
jmp 0x490fb4
cmp ax, 0x4015
je 0x492250
ja 0x491270
cmp ax, 0x4012
je 0x492260
ja 0x4912b0
cmp ax, 0x4010
je 0x491880
cmp ax, 0x4011
jne 0x4912c4
mov eax, dword [esi + 8]
movzx eax, byte [eax]
jmp 0x491252
cmp ax, 0x14
je 0x4913e0
jbe 0x491211
cmp ax, 0x17
je 0x492270
ja 0x491b33
cmp ax, 0x15
je 0x491820
cmp ax, 0x16
je 0x49124f
jmp 0x4912c4
cmp ax, 3
je 0x491235
jbe 0x491e60
cmp ax, 4
je 0x491800
cmp ax, 5
jne 0x4912c4
fld qword [esi + 8]
lea ecx, [esp + 0x80]
fstp qword [esp]
call dword [0x57f1a0]
sub esp, 8
jmp 0x491400
cmp ax, 0x4003
je 0x4913b4
jbe 0x491f30
cmp ax, 0x4004
je 0x491860
cmp ax, 0x4005
jne 0x4912c4
mov eax, dword [esi + 8]
lea ecx, [esp + 0x80]
fld qword [eax]
fstp qword [esp]
call dword [0x57f1a0]
sub esp, 8
jmp 0x491400
cmp ax, 0x11
je 0x492164
jbe 0x492070
cmp ax, 0x12
je 0x491842
cmp ax, 0x13
jne 0x4912c4
cmp ebp, 0x43
je 0x4919e0
test ebp, ebp
je 0x4922d0
cmp ebp, 0x4a
je 0x492330
mov eax, dword [esi + 8]
mov dword [esp], eax
lea ecx, [esp + 0x80]
call dword [0x57f1a8]
sub esp, 4
jmp 0x491400
cmp ax, 0x6008
je 0x492083
ja 0x491f45
cmp ax, 0x4016
je 0x4913ce
cmp ax, 0x4017
jne 0x4912c4
mov eax, dword [esi + 8]
lea ecx, [esp + 0x80]
mov eax, dword [eax]
mov dword [esp], eax
call dword [0x57f1b4]
jmp 0x491262
cmp ax, 0x4013
je 0x4913b4
cmp ax, 0x4014
je 0x491600
test ah, 0x20
je 0x49149d
test ah, 0x40
mov ebx, dword [esi + 8]
je 0x4912d7
mov ebx, dword [ebx]
mov eax, dword [0x57f214]
test ebx, ebx
mov dword [esp + 0x60], eax
je 0x4912ee
cmp word [ebx], 1
je 0x49327b
lea eax, [esp + 0x60]
lea ecx, [esp + 0x80]
mov dword [esp + 0x30], eax
mov dword [esp], eax
call dword [0x57f18c]
mov eax, dword [edi]
sub esp, 4
mov edx, dword [edi + 4]
mov ebx, dword [edi + 8]
mov ecx, eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x94], edx
movzx edx, byte [edi + 0xb]
and ebx, 0x3fffffff
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x80]
mov dword [edi], eax
mov eax, dword [esp + 0x84]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x88]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x98]
and eax, 0xc0000000
or eax, ebx
mov ebx, edx
and edx, 0xffffff80
mov dword [esp + 0x98], eax
shr eax, 0x18
and ebx, 0x40
and eax, 0x3f
or eax, ebx
or edx, eax
mov eax, dword [esp + 0x94]
mov byte [esp + 0x9b], dl
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x88], eax
call dword [0x57f1c0]
mov ecx, dword [esp + 0x30]
call fcn.004ccb8c
jmp 0x49149d
cmp ebp, 0x43
je 0x491aa3
test ebp, ebp
je 0x492412
cmp ebp, 0x4a
je 0x492470
mov eax, dword [esi + 8]
mov eax, dword [eax]
jmp 0x491252
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [esp], eax
mov dword [esp + 4], edx
lea ecx, [esp + 0x80]
call dword [0x57f1b8]
sub esp, 8
lea esi, [esi]
mov eax, dword [edi]
mov edx, dword [edi + 4]
mov ecx, eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x94], edx
movzx edx, byte [edi + 0xb]
mov ebx, dword [edi + 8]
mov dword [edi], eax
mov eax, dword [esp + 0x84]
and ebx, 0x3fffffff
mov dword [edi + 4], eax
mov eax, dword [esp + 0x88]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x80]
and eax, 0xc0000000
or eax, ebx
mov ebx, edx
and edx, 0xffffff80
mov dword [esp + 0x98], eax
shr eax, 0x18
and ebx, 0x40
and eax, 0x3f
or eax, ebx
or edx, eax
mov eax, dword [esp + 0x94]
mov byte [esp + 0x9b], dl
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x88], eax
call dword [0x57f1c0]
test ebp, ebp
jne 0x4914c2
mov eax, dword [esp + 0xc8]
mov eax, dword [eax]
mov eax, dword [eax + 4]
test eax, eax
jne 0x4915a0
add esp, 0xac
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
cmp ebp, 0x29
je 0x4914b5
cmp ebp, 0xffffffff
je 0x4914b5
mov ecx, edi
mov esi, dword [0x57f400]
call esi
cmp eax, ebp
je 0x4914b5
mov dword [esp], ebp
mov ecx, edi
mov ebx, dword [0x57f3e8]
call ebx
sub esp, 4
test al, al
jne 0x491af1
cmp ebp, 0xb
je 0x491610
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov ebx, dword [edi + 8]
mov dword [edi], 0
mov edx, eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x94], ecx
movzx ecx, byte [edi + 0xb]
and ebx, 0x3fffffff
mov dword [edi + 8], 0x80000000
mov dword [esp + 0x80], edx
mov dword [edi + 4], eax
mov eax, dword [esp + 0x98]
and eax, 0xc0000000
or eax, ebx
mov ebx, ecx
and ecx, 0xffffff80
mov dword [esp + 0x98], eax
shr eax, 0x18
and ebx, 0x40
and eax, 0x3f
or eax, ebx
or eax, ecx
lea ecx, [esp + 0x80]
mov byte [esp + 0x9b], al
mov eax, dword [esp + 0x94]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x88], eax
call dword [0x57f1c0]
jmp 0x4914b5
mov eax, dword [esp + 0xc8]
mov dword [esp + 4], 0x564ea7
mov dword [esp], eax
call dword [0x57ef1c]
test eax, eax
je 0x4914b5
mov eax, dword [esp + 0xc8]
mov eax, dword [eax]
add eax, dword [eax + 0xc]
mov dword [esp], eax
call dword [0x57f170]
cmp eax, 0x29
mov ebp, eax
setne dl
cmp eax, 0xffffffff
setne al
test dl, al
je 0x4914b5
test ebp, ebp
je 0x4914b5
jmp 0x4914cc
mov eax, dword [esi + 8]
mov edx, dword [eax + 4]
mov eax, dword [eax]
jmp 0x4913e6
mov ecx, edi
call esi
cmp eax, 9
jne 0x4914fb
mov eax, dword [0x57f214]
mov dword [esp], edi
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x70]
mov ecx, eax
mov dword [esp + 0x24], eax
call dword [0x57f410]
sub esp, 4
mov eax, dword [esp + 0x70]
lea edx, [eax + 0x10]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
lea esi, [edx + ecx*4]
lea eax, [edx + eax*4]
cmp eax, esi
je 0x493451
lea ecx, [esp + 0x6c]
mov byte [esp + 0x28], 1
mov ebp, eax
mov dword [esp + 0xc0], edi
mov dword [esp + 0x34], ecx
jmp 0x491680
mov byte [esp + 0x28], 0
add esi, 4
cmp ebp, esi
je 0x492d9c
mov edi, dword [esi]
mov dword [esp], 0xa
mov ecx, edi
call ebx
sub esp, 4
test al, al
je 0x491670
lea ecx, [esp + 0x90]
mov dword [esp], edi
call dword [0x57f430]
sub esp, 4
lea eax, [esp + 0x90]
mov ecx, dword [esp + 0x34]
mov dword [esp], eax
call fcn.004cc0b4
sub esp, 4
mov eax, dword [esp + 0x90]
mov edx, dword [eax]
test edx, edx
je 0x4916dc
cmp edx, 0xffffffff
je 0x491675
lock sub dword [eax], 1
mov eax, dword [esp + 0x90]
jne 0x491675
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x57ef28]
jmp 0x491675
lea ebx, [esp + 0x70]
fld qword [esi + 8]
fstp qword [esp]
mov eax, ebx
call fcn.004908e0
lea ecx, [esp + 0x80]
mov dword [esp], ebx
call dword [0x57f194]
mov eax, dword [edi]
sub esp, 4
mov edx, dword [edi + 4]
mov ecx, eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x94], edx
movzx edx, byte [edi + 0xb]
mov esi, dword [edi + 8]
mov dword [edi], eax
mov eax, dword [esp + 0x84]
and esi, 0x3fffffff
mov dword [edi + 4], eax
mov eax, dword [esp + 0x88]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x80]
and eax, 0xc0000000
or eax, esi
mov esi, edx
and edx, 0xffffff80
mov dword [esp + 0x98], eax
shr eax, 0x18
and esi, 0x40
and eax, 0x3f
or eax, esi
or edx, eax
mov eax, dword [esp + 0x94]
mov byte [esp + 0x9b], dl
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x88], eax
call dword [0x57f1c0]
mov ecx, ebx
call dword [0x57f1d8]
cmp ebp, 0xe
je 0x492290
test ebp, ebp
je 0x492904
cmp ebp, 0xf
jne 0x4914c2
mov dword [esp], 0xf
mov ecx, edi
call dword [0x57f178]
sub esp, 4
jmp 0x49149d
fld dword [esi + 8]
lea ecx, [esp + 0x80]
fstp dword [esp]
call dword [0x57f1a4]
jmp 0x491262
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [esp], eax
mov dword [esp + 4], edx
lea ecx, [esp + 0x80]
call dword [0x57f1bc]
sub esp, 8
jmp 0x491400
movzx eax, word [esi + 8]
jmp 0x491252
mov eax, dword [esi + 8]
lea ebx, [esp + 0x70]
fld qword [eax]
jmp 0x491707
mov eax, dword [esi + 8]
lea ecx, [esp + 0x80]
fld dword [eax]
fstp dword [esp]
call dword [0x57f1a4]
jmp 0x491262
mov eax, dword [esi + 8]
movsx eax, byte [eax]
mov dword [esp], eax
lea ecx, [esp + 0x80]
call dword [0x57f1a8]
mov eax, dword [edi]
sub esp, 4
mov edx, dword [edi + 4]
mov ecx, eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x94], edx
movzx edx, byte [edi + 0xb]
mov ebx, dword [edi + 8]
mov dword [edi], eax
mov eax, dword [esp + 0x84]
and ebx, 0x3fffffff
mov dword [edi + 4], eax
mov eax, dword [esp + 0x88]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x80]
and eax, 0xc0000000
or eax, ebx
mov ebx, edx
and edx, 0xffffff80
mov dword [esp + 0x98], eax
shr eax, 0x18
and ebx, 0x40
and eax, 0x3f
or eax, ebx
or edx, eax
mov eax, dword [esp + 0x94]
mov byte [esp + 0x9b], dl
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x88], eax
call dword [0x57f1c0]
mov dword [esp + 4], str.char
mov eax, dword [esp + 0xc8]
mov dword [esp], eax
call dword [0x57ef1c]
test eax, eax
jne 0x49149d
mov ebp, 2
jmp 0x4914cc
test ah, 0x40
mov dword [esp + 0x70], 0
mov edx, dword [esi + 8]
je 0x492980
mov eax, dword [edx]
mov dword [esp + 0x70], eax
mov ebx, dword [0x4e619c]
test ebx, ebx
je 0x4929d4
test byte [edi + 0xb], 0x40
jne 0x492a51
mov eax, dword [edi + 8]
and eax, 0x3fffffff
cmp eax, ebx
je 0x4929a0
cmp eax, 7
ja 0x4919b0
cmp ebx, 7
jbe 0x4929a0
lea eax, [esp + 0x70]
mov dword [esp + 8], 1
mov dword [esp], ebx
lea ecx, [esp + 0x80]
mov dword [esp + 4], eax
call dword [0x57f1b0]
sub esp, 0xc
jmp 0x491400
mov eax, dword [esi + 8]
lea ebx, [esp + 0x90]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00497c80
mov dword [esp + 4], ebx
lea ecx, [esp + 0x70]
mov dword [esp + 8], 0
mov dword [esp], 0x43
call dword [0x57f1b0]
mov eax, dword [edi]
sub esp, 0xc
mov edx, dword [edi + 4]
mov ecx, eax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x84], edx
movzx edx, byte [edi + 0xb]
mov ebx, dword [edi + 8]
mov dword [edi], eax
mov eax, dword [esp + 0x74]
and ebx, 0x3fffffff
mov dword [edi + 4], eax
mov eax, dword [esp + 0x78]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x70], ecx
lea ecx, [esp + 0x70]
and eax, 0xc0000000
or eax, ebx
mov ebx, edx
and edx, 0xffffff80
mov dword [esp + 0x88], eax
shr eax, 0x18
and ebx, 0x40
and eax, 0x3f
or eax, ebx
or edx, eax
mov eax, dword [esp + 0x84]
mov byte [esp + 0x8b], dl
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x78], eax
call dword [0x57f1c0]
jmp 0x49149d
mov eax, dword [esi + 8]
lea ebx, [esp + 0x90]
mov eax, dword [eax]
jmp 0x4919ea
cmp ax, 0x400b
jne 0x492480
mov eax, dword [esi + 8]
cmp word [eax], 0
setne al
lea ecx, [esp + 0x80]
movzx eax, al
mov dword [esp], eax
call dword [0x57f19c]
jmp 0x491262
cmp ax, 0xb
jne 0x492560
cmp word [esi + 8], 0
jmp 0x491ac5
lea esi, [esp + 0x90]
mov dword [esp], edi
mov ecx, esi
call dword [0x57f198]
sub esp, 4
mov ecx, esi
mov dword [esp], ebp
call dword [0x57f178]
sub esp, 4
test al, al
je 0x491b26
mov dword [esp], esi
mov ecx, edi
call dword [0x57f1c4]
sub esp, 4
mov ecx, esi
call dword [0x57f1c0]
jmp 0x4914b5
cmp ax, 0x2008
je 0x492083
cmp ax, 0x200c
jne 0x4912c4
mov esi, dword [esi + 8]
test ah, 0x40
mov dword [esp + 0x24], esi
je 0x491b59
mov eax, dword [esi]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
test eax, eax
je 0x492570
mov dword [esp], eax
call dword [0x57fc4c]
sub esp, 4
cmp eax, 1
je 0x492c07
cmp eax, 2
jne 0x492570
mov eax, dword [0x57f214]
mov ebx, dword [esp + 0x24]
mov esi, dword [0x57fc54]
mov dword [esp + 4], 1
mov dword [esp + 0x54], eax
lea eax, [esp + 0x58]
mov dword [esp], ebx
mov dword [esp + 8], eax
call esi
sub esp, 0xc
lea eax, [esp + 0x5c]
mov dword [esp + 0x24], ebx
mov dword [esp], ebx
mov dword [esp + 4], 1
mov ebx, dword [0x57fc58]
mov dword [esp + 8], eax
call ebx
sub esp, 0xc
lea eax, [esp + 0x60]
mov dword [esp + 4], 2
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call esi
sub esp, 0xc
lea eax, [esp + 0x64]
mov dword [esp + 4], 2
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call ebx
sub esp, 0xc
mov eax, dword [esp + 0x58]
cmp eax, dword [esp + 0x5c]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x28], eax
jg 0x493512
lea ecx, [esp + 0x68]
mov esi, dword [0x57f1c0]
mov dword [esp + 0xc0], edi
mov dword [esp + 0xcc], ebp
mov edi, eax
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x54]
mov dword [esp + 0x2c], esi
lea esi, [esp + 0x90]
mov dword [esp + 0x48], ecx
mov ecx, dword [0x57f18c]
mov dword [esp + 0x4c], ecx
mov eax, dword [0x57f214]
mov ebx, dword [esp + 0x60]
cmp ebx, dword [esp + 0x64]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x70], eax
jg 0x491d51
lea eax, [esp + 0x70]
lea ebp, [esp + 0x6c]
mov dword [esp + 0x44], eax
mov eax, dword [0x57fc78]
mov dword [esp + 0x40], eax
mov eax, dword [0x57fc50]
mov dword [esp + 0x3c], eax
mov eax, dword [0x57ef80]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x40]
mov dword [esp], edi
call eax
sub esp, 4
mov eax, dword [esp + 0x44]
mov dword [esp + 0x74], ebx
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
call eax
sub esp, 0xc
mov ecx, ebp
mov eax, dword [esp + 0x38]
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0
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.00490f20
mov eax, dword [esp + 0x6c]
mov edx, dword [eax]
test edx, edx
je 0x4922b0
cmp edx, 0xffffffff
je 0x491d25
lock sub dword [eax], 1
mov eax, dword [esp + 0x6c]
je 0x4922b0
mov dword [esp], edi
add ebx, 1
call fcn.00497cd0
mov ecx, dword [esp + 0x30]
mov dword [esp], esi
call fcn.004cc9c0
sub esp, 4
mov ecx, esi
mov eax, dword [esp + 0x2c]
call eax
cmp dword [esp + 0x64], ebx
jge 0x491ca6
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x4c]
mov ecx, esi
mov dword [esp], ebx
call eax
sub esp, 4
mov ecx, dword [esp + 0x48]
mov dword [esp], esi
call fcn.004cc9c0
sub esp, 4
mov ecx, esi
mov eax, dword [esp + 0x2c]
call eax
mov ecx, ebx
call fcn.004ccb8c
add dword [esp + 0x34], 1
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x5c], eax
jge 0x491c60
mov edi, dword [esp + 0xc0]
mov ebp, dword [esp + 0xcc]
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x4c]
mov dword [esp], esi
call eax
mov eax, dword [edi]
mov edx, dword [edi + 4]
sub esp, 4
mov dword [esp + 0x94], edx
mov dword [esp + 0x90], eax
mov ebx, eax
mov eax, dword [edi + 8]
movzx edx, byte [edi + 0xb]
and eax, 0x3fffffff
mov ecx, eax
mov eax, dword [esp + 0x80]
mov dword [edi], eax
mov eax, dword [esp + 0x84]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x88]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x80], ebx
and eax, 0xc0000000
or eax, ecx
mov ecx, edx
and edx, 0xffffff80
mov dword [esp + 0x98], eax
shr eax, 0x18
and ecx, 0x40
and eax, 0x3f
or eax, ecx
mov ecx, dword [esp + 0x28]
or edx, eax
mov eax, dword [esp + 0x94]
mov byte [esp + 0x9b], dl
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x2c]
call eax
mov ecx, esi
call fcn.004ccb8c
jmp 0x49149d
cmp ax, 2
jne 0x4912c4
movsx eax, word [esi + 8]
mov dword [esp], eax
lea ecx, [esp + 0x80]
call dword [0x57f1a8]
mov eax, dword [edi]
sub esp, 4
mov edx, dword [edi + 4]
mov ecx, eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x94], edx
movzx edx, byte [edi + 0xb]
mov ebx, dword [edi + 8]
mov dword [edi], eax
mov eax, dword [esp + 0x84]
and ebx, 0x3fffffff
mov dword [edi + 4], eax
mov eax, dword [esp + 0x88]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x80]
and eax, 0xc0000000
or eax, ebx
mov ebx, edx
and edx, 0xffffff80
mov dword [esp + 0x98], eax
shr eax, 0x18
and ebx, 0x40
and eax, 0x3f
or eax, ebx
or edx, eax
mov eax, dword [esp + 0x94]
mov byte [esp + 0x9b], dl
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x88], eax
call dword [0x57f1c0]
mov dword [esp + 4], str.short
jmp 0x49193e
cmp ax, 0x4002
jne 0x4912c4
mov eax, dword [esi + 8]
movsx eax, word [eax]
jmp 0x491e6e
cmp ax, 0x600c
je 0x491b47
cmp ax, 0x6011
jne 0x4912c4
test ah, 0x40
mov ebx, dword [esi + 8]
je 0x491f63
mov ebx, dword [ebx]
mov eax, dword [0x57ef2c]
test ebx, ebx
mov dword [esp + 0x68], eax
je 0x491f7a
cmp word [ebx], 1
je 0x493008
lea eax, [esp + 0x68]
mov dword [esp], eax
lea ecx, [esp + 0x80]
call dword [0x57f184]
mov eax, dword [edi]
sub esp, 4
mov edx, dword [edi + 4]
mov ecx, eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x94], edx
movzx edx, byte [edi + 0xb]
mov ebx, dword [edi + 8]
mov dword [edi], eax
mov eax, dword [esp + 0x84]
and ebx, 0x3fffffff
mov dword [edi + 4], eax
mov eax, dword [esp + 0x88]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x80]
and eax, 0xc0000000
or eax, ebx
mov ebx, edx
and edx, 0xffffff80
mov dword [esp + 0x98], eax
shr eax, 0x18
and ebx, 0x40
and eax, 0x3f
or eax, ebx
or edx, eax
mov eax, dword [esp + 0x94]
mov byte [esp + 0x9b], dl
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x88], eax
call dword [0x57f1c0]
mov eax, dword [esp + 0x68]
mov edx, dword [eax]
test edx, edx
je 0x492050
cmp edx, 0xffffffff
je 0x49149d
lock sub dword [eax], 1
mov eax, dword [esp + 0x68]
jne 0x49149d
nop
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [0x57ef28]
jmp 0x49149d
cmp ax, 0x10
jne 0x4912c4
movsx eax, byte [esi + 8]
jmp 0x491886
test ah, 0x40
mov ebx, dword [esi + 8]
je 0x49208d
mov ebx, dword [ebx]
mov eax, dword [0x57f214]
test ebx, ebx
mov dword [esp + 0x64], eax
je 0x4920a4
cmp word [ebx], 1
je 0x492eda
lea ebx, [esp + 0x64]
lea ecx, [esp + 0x80]
mov dword [esp], ebx
call dword [0x57f188]
mov eax, dword [edi]
sub esp, 4
mov edx, dword [edi + 4]
mov esi, dword [edi + 8]
mov ecx, eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x94], edx
movzx edx, byte [edi + 0xb]
and esi, 0x3fffffff
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x80]
mov dword [edi], eax
mov eax, dword [esp + 0x84]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x88]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x98]
and eax, 0xc0000000
or eax, esi
mov esi, edx
and edx, 0xffffff80
mov dword [esp + 0x98], eax
shr eax, 0x18
and esi, 0x40
and eax, 0x3f
or eax, esi
or edx, eax
mov eax, dword [esp + 0x94]
mov byte [esp + 0x9b], dl
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x88], eax
call dword [0x57f1c0]
mov ecx, ebx
call fcn.004cc478
jmp 0x49149d
movzx eax, byte [esi + 8]
jmp 0x491252
test ah, 0x40
mov dword [esp + 0x54], 0
mov edx, dword [esi + 8]
je 0x492990
mov eax, dword [edx]
mov dword [esp + 0x54], eax
cmp ebp, 0x40
je 0x492640
test ebp, ebp
je 0x492a64
cmp ebp, 0x41
je 0x492ad6
mov eax, dword [esp + 0xc8]
mov eax, dword [eax]
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x49149d
test word [esi], 0x4000
je 0x493531
lea eax, [esi + 8]
lea esi, [esp + 0x90]
mov dword [esp + 4], 0x564e4b
mov dword [esp + 0x24], eax
mov dword [esp], esi
call dword [0x57efa8]
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.0049a250
mov edx, dword [esp + 0x90]
mov ebx, eax
mov ecx, dword [edx]
test ecx, ecx
je 0x4935dc
add ecx, 1
je 0x49221c
lock sub dword [edx], 1
je 0x4935d5
mov eax, dword [esp + 0x24]
mov ecx, esi
mov dword [esp + 4], eax
mov dword [esp], ebx
call dword [0x57f1ac]
sub esp, 8
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.004d6e68
mov ecx, esi
call dword [0x57f1c0]
jmp 0x49149d
mov eax, dword [esi + 8]
mov edx, dword [eax + 4]
mov eax, dword [eax]
jmp 0x491826
mov eax, dword [esi + 8]
movzx eax, word [eax]
jmp 0x491252
mov eax, dword [esi + 8]
lea ecx, [esp + 0x80]
mov dword [esp], eax
call dword [0x57f1b4]
jmp 0x491262
mov dword [esp], 0xe
mov ecx, edi
call dword [0x57f178]
sub esp, 4
jmp 0x49149d
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [0x57ef28]
jmp 0x491d25
mov eax, dword [esp + 0xc8]
mov dword [esp + 4], str.QColor
mov ebx, dword [0x57ef1c]
mov dword [esp], eax
call ebx
test eax, eax
je 0x4919e0
mov eax, dword [esp + 0xc8]
mov dword [esp + 4], str.QCursor
mov dword [esp], eax
call ebx
test eax, eax
je 0x492330
mov eax, dword [esp + 0xc8]
mov dword [esp + 4], 0x564e74
mov dword [esp], eax
call ebx
test eax, eax
jne 0x49124f
lea esi, [esi]
lea edi, [edi]
mov eax, dword [esi + 8]
lea ebx, [esp + 0x70]
mov dword [esp], eax
mov ecx, ebx
call dword [0x57f52c]
sub esp, 4
mov dword [esp + 4], ebx
lea ecx, [esp + 0x80]
mov dword [esp + 8], 0
mov dword [esp], 0x4a
call dword [0x57f1b0]
mov eax, dword [edi]
sub esp, 0xc
mov edx, dword [edi + 4]
mov ecx, eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x94], edx
movzx edx, byte [edi + 0xb]
mov esi, dword [edi + 8]
mov dword [edi], eax
mov eax, dword [esp + 0x84]
and esi, 0x3fffffff
mov dword [edi + 4], eax
mov eax, dword [esp + 0x88]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x80]
and eax, 0xc0000000
or eax, esi
mov esi, edx
and edx, 0xffffff80
mov dword [esp + 0x98], eax
shr eax, 0x18
and esi, 0x40
and eax, 0x3f
or eax, esi
or edx, eax
mov eax, dword [esp + 0x94]
mov byte [esp + 0x9b], dl
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x88], eax
call dword [0x57f1c0]
mov ecx, ebx
call dword [0x57f538]
jmp 0x49149d
mov eax, dword [esp + 0xc8]
mov dword [esp + 4], str.QColor
mov ebx, dword [0x57ef1c]
mov dword [esp], eax
call ebx
test eax, eax
je 0x491aa3
mov eax, dword [esp + 0xc8]
mov dword [esp + 4], str.QCursor
mov dword [esp], eax
call ebx
test eax, eax
je 0x492470
mov eax, dword [esp + 0xc8]
mov dword [esp + 4], 0x564e74
mov dword [esp], eax
call ebx
test eax, eax
jne 0x4913ce
nop
lea esi, [esi]
mov eax, dword [esi + 8]
lea ebx, [esp + 0x70]
mov eax, dword [eax]
jmp 0x492337
cmp ax, 0x400c
jne 0x4912c4
mov eax, dword [esi + 8]
test eax, eax
je 0x49149d
mov esi, dword [esp + 0xc8]
lea ebx, [esp + 0x80]
mov dword [esp + 4], eax
mov dword [esp + 0xc], 0
mov dword [esp], ebx
mov dword [esp + 8], esi
call fcn.00490f20
mov eax, dword [edi]
mov edx, dword [edi + 4]
mov esi, dword [edi + 8]
mov ecx, eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x94], edx
movzx edx, byte [edi + 0xb]
and esi, 0x3fffffff
mov dword [esp + 0x80], ecx
mov ecx, ebx
mov dword [edi], eax
mov eax, dword [esp + 0x84]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x88]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x98]
and eax, 0xc0000000
or eax, esi
mov esi, edx
and edx, 0xffffff80
mov dword [esp + 0x98], eax
shr eax, 0x18
and esi, 0x40
and eax, 0x3f
or eax, esi
or edx, eax
mov eax, dword [esp + 0x94]
mov byte [esp + 0x9b], dl
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x88], eax
call dword [0x57f1c0]
jmp 0x49149d
cmp ax, 0xc
je 0x49248a
jmp 0x4912c4
mov eax, dword [0x57f214]
lea ebx, [esp + 0x70]
lea ecx, [esp + 0x80]
mov dword [esp], ebx
mov dword [esp + 0x70], eax
call dword [0x57f18c]
mov eax, dword [edi]
sub esp, 4
mov edx, dword [edi + 4]
mov esi, dword [edi + 8]
mov ecx, eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x94], edx
movzx edx, byte [edi + 0xb]
and esi, 0x3fffffff
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x80]
mov dword [edi], eax
mov eax, dword [esp + 0x84]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x88]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x98]
and eax, 0xc0000000
or eax, esi
mov esi, edx
and edx, 0xffffff80
mov dword [esp + 0x98], eax
shr eax, 0x18
and esi, 0x40
and eax, 0x3f
or eax, esi
or edx, eax
mov eax, dword [esp + 0x94]
mov byte [esp + 0x9b], dl
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x88], eax
call dword [0x57f1c0]
mov ecx, ebx
call fcn.004ccb8c
jmp 0x49149d
mov eax, dword [esp + 0x54]
mov dword [esp + 0x58], 0
test eax, eax
je 0x492dc5
mov edx, dword [eax]
lea ecx, [esp + 0x58]
mov dword [esp + 4], 0x566774
mov dword [esp], eax
mov dword [esp + 8], ecx
call dword [edx]
sub esp, 0xc
mov ebx, dword [esp + 0x58]
test ebx, ebx
je 0x492dc5
mov eax, dword [ebx]
lea edx, [esp + 0x5c]
mov dword [esp], ebx
mov dword [esp + 4], edx
call dword [eax + 0xc]
mov eax, dword [ebx]
sub esp, 8
lea edx, [esp + 0x60]
mov dword [esp], ebx
mov dword [esp + 4], edx
call dword [eax + 0x1c]
mov eax, dword [ebx]
sub esp, 8
lea edx, [esp + 0x50]
mov dword [esp], ebx
mov dword [esp + 4], edx
call dword [eax + 0x44]
mov eax, dword [ebx]
sub esp, 8
lea edx, [esp + 0x64]
mov dword [esp], ebx
mov dword [esp + 4], edx
call dword [eax + 0x24]
mov eax, dword [ebx]
sub esp, 8
lea edx, [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 4], edx
call dword [eax + 0x14]
mov eax, dword [ebx]
sub esp, 8
lea edx, [esp + 0x68]
mov dword [esp], ebx
mov dword [esp + 4], edx
call dword [eax + 0x34]
mov eax, dword [ebx]
sub esp, 8
lea esi, [esp + 0x6c]
mov dword [esp], ebx
mov dword [esp + 4], esi
call dword [eax + 0x2c]
mov eax, dword [ebx]
sub esp, 8
lea edx, [esp + 0x52]
mov dword [esp], ebx
mov dword [esp + 4], edx
call dword [eax + 0x3c]
sub esp, 8
xor ecx, ecx
mov edx, 0x35c5ebbb
mov ebx, dword [esp + 0x64]
mov dword [esp + 8], 0xffffffff
test ebx, ebx
movsx ebx, word [esp + 0x52]
setne cl
mov dword [esp + 0x2c], ecx
mov eax, ebx
imul ebx, ebx, 0xffffa8e9
shr ebx, 0x10
add ebx, eax
sar ax, 0xf
sar bx, 6
sub ebx, eax
mov eax, edx
mul dword [esp + 0x90]
lea eax, [esp + 0x80]
movsx ebx, bx
mov ecx, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x28], ecx
mov dword [esp], ecx
mov esi, edx
mov dword [esp + 4], eax
call dword [0x57f15c]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x70]
shr esi, 0xb
mov dword [esp + 8], ebx
mov dword [esp + 0x24], edx
mov dword [esp + 4], esi
mov dword [esp + 0xc], ecx
mov dword [esp], eax
mov ecx, edx
call dword [0x57f4f0]
sub esp, 0x10
mov eax, dword [esp + 0x80]
mov edx, dword [eax]
test edx, edx
je 0x492e9e
cmp edx, 0xffffffff
je 0x4927cd
lock sub dword [eax], 1
mov eax, dword [esp + 0x80]
je 0x492e9e
cmp dword [esp + 0x60], 1
mov esi, dword [esp + 0x24]
mov ecx, esi
sbb eax, eax
and eax, 0xffffffe7
add eax, 0x4b
mov dword [esp], eax
call dword [0x57f4ec]
sub esp, 4
xor eax, eax
mov ecx, esi
mov edx, dword [esp + 0x68]
test edx, edx
setne al
mov dword [esp], eax
call dword [0x57f4dc]
sub esp, 4
xor eax, eax
mov ecx, dword [esp + 0x6c]
test ecx, ecx
mov ecx, esi
setne al
mov dword [esp], eax
call dword [0x57f4e0]
sub esp, 4
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
call dword [0x57fc6c]
sub esp, 4
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], 0x40
call dword [0x57f1b0]
mov eax, dword [edi]
sub esp, 0xc
mov edx, dword [edi + 4]
mov ebx, dword [edi + 8]
mov ecx, eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x94], edx
movzx edx, byte [edi + 0xb]
and ebx, 0x3fffffff
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x28]
mov dword [edi], eax
mov eax, dword [esp + 0x84]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x88]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x98]
and eax, 0xc0000000
or eax, ebx
mov ebx, edx
and edx, 0xffffff80
mov dword [esp + 0x98], eax
shr eax, 0x18
and ebx, 0x40
and eax, 0x3f
or eax, ebx
or edx, eax
mov eax, dword [esp + 0x94]
mov byte [esp + 0x9b], dl
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x88], eax
call dword [0x57f1c0]
mov ecx, esi
call dword [0x57f4fc]
mov eax, dword [esp + 0x58]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
jmp 0x49149d
mov eax, dword [esp + 0xc8]
mov dword [esp + 4], 0x564e7d
mov ebx, dword [0x57ef1c]
mov dword [esp], eax
call ebx
test eax, eax
je 0x492290
mov eax, dword [esp + 0xc8]
mov dword [esp + 4], str.QDate
mov dword [esp], eax
call ebx
test eax, eax
je 0x492290
mov eax, dword [esp + 0xc8]
mov dword [esp + 4], str.QTime
mov dword [esp], eax
call ebx
test eax, eax
je 0x4917e3
mov eax, dword [esp + 0xc8]
mov dword [esp + 4], 0x564e8a
mov dword [esp], eax
call ebx
test eax, eax
je 0x4917e3
jmp 0x4914a1
mov dword [esp + 0x70], edx
jmp 0x49197a
mov dword [esp + 0x54], edx
jmp 0x49218a
mov eax, dword [edi + 8]
and ebx, 0x3fffffff
and eax, 0xc0000000
or ebx, eax
mov dword [edi + 8], ebx
shr ebx, 0x18
mov eax, ebx
and eax, 0x7f
and ebx, 0x40
mov byte [edi + 0xb], al
mov eax, edi
je 0x4929c9
mov eax, dword [edi]
mov eax, dword [eax]
mov edx, dword [esp + 0x70]
mov dword [eax], edx
jmp 0x49149d
lea ebx, [esp + 0x90]
mov dword [esp + 4], str.IUnknown
mov dword [esp], ebx
call dword [0x57efa8]
mov dword [esp], ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x104
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0x4c8cd0
mov dword [esp + 4], 0x4c8cc0
call dword [0x57f234]
mov ebx, eax
mov eax, dword [esp + 0x90]
mov edx, dword [eax]
test edx, edx
je 0x492ebc
cmp edx, 0xffffffff
je 0x492a46
lock sub dword [eax], 1
mov eax, dword [esp + 0x90]
je 0x492ebc
mov dword [0x4e619c], ebx
jmp 0x491988
mov eax, dword [edi]
mov eax, dword [eax + 4]
cmp eax, 1
jne 0x4919b0
jmp 0x491992
mov eax, dword [esp + 0xc8]
mov dword [esp + 4], 0x564e91
mov ebx, dword [0x57ef1c]
mov dword [esp], eax
call ebx
test eax, eax
je 0x492640
mov eax, dword [esp + 0xc8]
mov dword [esp + 4], str.QFont
mov dword [esp], eax
call ebx
test eax, eax
je 0x492640
mov eax, dword [esp + 0xc8]
mov dword [esp + 4], str.QPixmap
mov dword [esp], eax
call ebx
test eax, eax
je 0x492ad6
mov eax, dword [esp + 0xc8]
mov dword [esp + 4], 0x564e9e
mov dword [esp], eax
call ebx
test eax, eax
jne 0x4921a4
mov eax, dword [esp + 0x54]
mov dword [esp + 0x6c], 0
test eax, eax
je 0x4931b4
mov edx, dword [eax]
lea esi, [esp + 0x6c]
mov dword [esp + 4], 0x566c94
mov dword [esp], eax
mov dword [esp + 8], esi
call dword [edx]
sub esp, 0xc
mov ebx, dword [esp + 0x6c]
test ebx, ebx
je 0x4931b4
mov eax, dword [ebx]
lea esi, [esp + 0x70]
mov dword [esp], ebx
mov dword [esp + 0x24], esi
mov dword [esp + 4], esi
call dword [eax + 0x14]
sub esp, 8
cmp word [esp + 0x70], 1
je 0x49322a
lea esi, [esp + 0x90]
mov ecx, esi
call dword [0x57f544]
mov ecx, dword [esp + 0x24]
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], 0x41
call dword [0x57f1b0]
mov eax, dword [edi]
sub esp, 0xc
mov edx, dword [edi + 4]
mov dword [esp + 0x80], eax
mov ebx, eax
mov eax, dword [edi + 8]
mov dword [esp + 0x84], edx
movzx edx, byte [edi + 0xb]
and eax, 0x3fffffff
mov ecx, eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x70], ebx
mov dword [edi], eax
mov eax, dword [esp + 0x74]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x78]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x88]
and eax, 0xc0000000
or eax, ecx
mov ecx, edx
and edx, 0xffffff80
mov dword [esp + 0x88], eax
shr eax, 0x18
and ecx, 0x40
and eax, 0x3f
or eax, ecx
mov ecx, dword [esp + 0x24]
or edx, eax
mov eax, dword [esp + 0x84]
mov byte [esp + 0x8b], dl
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x78], eax
call dword [0x57f1c0]
mov ecx, esi
call dword [0x57f548]
mov eax, dword [esp + 0x6c]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
jmp 0x49149d
mov eax, dword [0x57f214]
mov esi, dword [esp + 0x24]
mov dword [esp + 4], 1
mov dword [esp + 0x60], eax
lea eax, [esp + 0x64]
mov dword [esp], esi
mov dword [esp + 8], eax
call dword [0x57fc54]
sub esp, 0xc
lea eax, [esp + 0x68]
mov dword [esp + 4], 1
mov dword [esp], esi
mov dword [esp + 8], eax
call dword [0x57fc58]
sub esp, 0xc
mov eax, dword [esp + 0x64]
cmp eax, dword [esp + 0x68]
mov dword [esp + 0x6c], eax
jg 0x493209
lea edx, [esp + 0x60]
mov esi, dword [0x57f1c0]
lea eax, [esp + 0x80]
lea ecx, [esp + 0x70]
mov ebx, dword [0x57fc78]
mov dword [esp + 0xc0], edi
mov dword [esp + 0x30], edx
lea edx, [esp + 0x6c]
mov dword [esp + 0xcc], ebp
mov dword [esp + 0x2c], esi
lea esi, [esp + 0x90]
mov dword [esp + 0x28], eax
mov dword [esp + 0x34], edx
mov edx, dword [0x57fc50]
mov ebp, ecx
mov edi, eax
mov dword [esp + 0x38], edx
mov edx, dword [0x57ef80]
mov dword [esp + 0x3c], edx
mov dword [esp], edi
call ebx
sub esp, 4
mov eax, dword [esp + 0x34]
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
mov eax, dword [esp + 0x38]
call eax
sub esp, 0xc
mov ecx, ebp
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0
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.00490f20
mov eax, dword [esp + 0x70]
mov edx, dword [eax]
test edx, edx
je 0x492d81
cmp edx, 0xffffffff
je 0x492d29
lock sub dword [eax], 1
mov eax, dword [esp + 0x70]
je 0x492d81
mov dword [esp], edi
call fcn.00497cd0
mov ecx, dword [esp + 0x30]
mov dword [esp], esi
call fcn.004cc9c0
sub esp, 4
mov ecx, esi
mov eax, dword [esp + 0x2c]
call eax
mov eax, dword [esp + 0x6c]
add eax, 1
cmp dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
jge 0x492cba
mov edi, dword [esp + 0xc0]
mov ebp, dword [esp + 0xcc]
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov dword [esp], esi
call dword [0x57f18c]
jmp 0x491db3
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [0x57ef28]
jmp 0x492d29
cmp byte [esp + 0x28], 0
mov edi, dword [esp + 0xc0]
jne 0x493459
mov ecx, dword [esp + 0x24]
call fcn.004ccb8c
mov ecx, dword [esp + 0x34]
call fcn.004cc478
jmp 0x4914b5
lea ebx, [esp + 0x70]
mov ecx, ebx
call dword [0x57f4f8]
mov dword [esp + 4], ebx
lea ecx, [esp + 0x80]
mov dword [esp + 8], 0
mov dword [esp], 0x40
call dword [0x57f1b0]
mov eax, dword [edi]
sub esp, 0xc
mov edx, dword [edi + 4]
mov esi, dword [edi + 8]
mov ecx, eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x94], edx
movzx edx, byte [edi + 0xb]
and esi, 0x3fffffff
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x80]
mov dword [edi], eax
mov eax, dword [esp + 0x84]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x88]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x98]
and eax, 0xc0000000
or eax, esi
mov esi, edx
and edx, 0xffffff80
mov dword [esp + 0x98], eax
shr eax, 0x18
and esi, 0x40
and eax, 0x3f
or eax, esi
or edx, eax
mov eax, dword [esp + 0x94]
mov byte [esp + 0x9b], dl
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x88], eax
call dword [0x57f1c0]
mov ecx, ebx
call dword [0x57f4fc]
jmp 0x49149d
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x57ef28]
jmp 0x4927cd
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [0x57ef28]
jmp 0x492a46
lea eax, [esp + 0x68]
mov dword [esp + 4], 1
mov dword [esp], ebx
mov dword [esp + 8], eax
call dword [0x57fc54]
sub esp, 0xc
lea eax, [esp + 0x6c]
mov dword [esp + 4], 1
mov dword [esp], ebx
mov dword [esp + 8], eax
call dword [0x57fc58]
sub esp, 0xc
mov eax, dword [esp + 0x68]
cmp eax, dword [esp + 0x6c]
mov dword [esp + 0x70], eax
jg 0x493687
lea ecx, [esp + 0x64]
lea esi, [esp + 0x80]
lea eax, [esp + 0x70]
mov dword [esp + 0xc0], edi
mov dword [esp + 0xcc], ebp
mov dword [esp + 0x24], ecx
mov ecx, dword [0x57fc50]
mov edi, eax
mov dword [esp + 0x28], esi
lea esi, [esp + 0x90]
mov ebp, ecx
jmp 0x492f9a
cmp edx, 0xffffffff
je 0x492f72
lock sub dword [eax], 1
mov eax, dword [esp + 0x90]
je 0x492fea
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call dword [0x57fc6c]
sub esp, 4
mov eax, dword [esp + 0x70]
add eax, 1
cmp dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
jl 0x4930eb
mov eax, dword [esp + 0x28]
mov dword [esp + 4], edi
mov dword [esp], ebx
mov dword [esp + 8], eax
call ebp
sub esp, 0xc
mov eax, dword [esp + 0x80]
mov dword [esp + 8], 0xffffffff
mov dword [esp], esi
mov dword [esp + 4], eax
call dword [0x57f15c]
mov ecx, dword [esp + 0x24]
mov dword [esp], esi
call fcn.004cc0b4
sub esp, 4
mov eax, dword [esp + 0x90]
mov edx, dword [eax]
test edx, edx
jne 0x492f60
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x57ef28]
jmp 0x492f72
lea eax, [esp + 0x6c]
mov dword [esp + 4], 1
mov dword [esp], ebx
mov dword [esp + 8], eax
call dword [0x57fc54]
sub esp, 0xc
lea eax, [esp + 0x70]
mov dword [esp + 4], 1
mov dword [esp], ebx
mov dword [esp + 8], eax
call dword [0x57fc58]
sub esp, 0xc
mov eax, dword [esp + 0x70]
lea ecx, [esp + 0x68]
mov dword [esp + 0x30], ecx
cmp eax, 0xffffffff
je 0x4930e2
sub eax, dword [esp + 0x6c]
add eax, 1
mov dword [esp], eax
call dword [0x57ef68]
sub esp, 4
mov eax, dword [esp + 0x68]
mov edx, dword [eax]
cmp edx, 1
jbe 0x4935c6
movsx edx, byte [eax + 0xb]
mov ecx, dword [esp + 0x30]
shr edx, 0x1f
mov dword [esp + 4], edx
mov eax, dword [eax + 4]
add eax, 1
mov dword [esp], eax
call dword [0x57ef34]
sub esp, 8
mov eax, dword [esp + 0x68]
add eax, dword [eax + 0xc]
mov dword [esp], ebx
mov esi, eax
lea eax, [esp + 0x90]
mov dword [esp + 4], eax
call dword [0x57fc3c]
sub esp, 8
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 4]
mov dword [esp], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 4], eax
call fcn.00499ba4
mov dword [esp], ebx
call dword [0x57fc64]
sub esp, 4
mov eax, dword [esp + 0x30]
jmp 0x491f7e
mov edi, dword [esp + 0xc0]
mov ebp, dword [esp + 0xcc]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esp], esi
call dword [0x57f188]
mov eax, dword [edi]
sub esp, 4
mov edx, dword [edi + 4]
mov ebx, eax
mov dword [esp + 0x90], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x94], edx
movzx edx, byte [edi + 0xb]
and eax, 0x3fffffff
mov ecx, eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x80], ebx
mov dword [edi], eax
mov eax, dword [esp + 0x84]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x88]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x98]
and eax, 0xc0000000
or eax, ecx
mov ecx, edx
and edx, 0xffffff80
mov dword [esp + 0x98], eax
shr eax, 0x18
and ecx, 0x40
and eax, 0x3f
or eax, ecx
mov ecx, dword [esp + 0x28]
or edx, eax
mov eax, dword [esp + 0x94]
mov byte [esp + 0x9b], dl
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x88], eax
call dword [0x57f1c0]
mov ecx, esi
call fcn.004cc478
jmp 0x49149d
lea ebx, [esp + 0x90]
lea esi, [esp + 0x80]
mov ecx, ebx
call dword [0x57f544]
mov ecx, esi
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
mov dword [esp], 0x41
call dword [0x57f1b0]
sub esp, 0xc
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.004d6e68
mov ecx, esi
call dword [0x57f1c0]
mov ecx, ebx
call dword [0x57f548]
jmp 0x49149d
lea eax, [esp + 0x80]
mov dword [esp + 0x28], eax
mov eax, dword [0x57f1c0]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x30], eax
jmp 0x492d6b
mov eax, dword [ebx]
lea edx, [esp + 0x80]
mov dword [esp + 0x80], 0
mov dword [esp], ebx
mov dword [esp + 4], edx
call dword [eax + 0xc]
sub esp, 8
mov eax, dword [esp + 0x80]
test eax, eax
je 0x492b33
lea esi, [esp + 0x90]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], esi
call dword [0x57f49c]
jmp 0x492b42
lea eax, [esp + 0x5c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [0x57fc5c]
sub esp, 8
cmp word [esp + 0x5c], 0x17
ja case.0x4932a0.8
movzx eax, word [esp + 0x5c]
jmp dword [eax*4 + 0x564ed0]
lea eax, [esp + 0x78]
mov dword [esp + 4], 1
mov dword [esp], ebx
mov dword [esp + 0x24], eax
lea eax, [esp + 0x64]
mov dword [esp + 8], eax
call dword [0x57fc54]
sub esp, 0xc
lea eax, [esp + 0x68]
mov dword [esp + 4], 1
mov dword [esp], ebx
mov dword [esp + 8], eax
call dword [0x57fc58]
sub esp, 0xc
mov eax, dword [esp + 0x64]
cmp eax, dword [esp + 0x68]
mov dword [esp + 0x6c], eax
jg 0x493209
lea edx, [esp + 0x60]
mov esi, dword [0x57f1c0]
lea eax, [esp + 0x80]
lea ecx, [esp + 0x70]
mov dword [esp + 0xc0], edi
mov dword [esp + 0xcc], ebp
mov dword [esp + 0x30], edx
lea edx, [esp + 0x6c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], esi
lea esi, [esp + 0x90]
mov edi, ecx
mov dword [esp + 0x34], edx
mov edx, dword [0x57fc50]
mov ebp, eax
mov dword [esp + 0x38], edx
mov edx, dword [0x57ef80]
mov dword [esp + 0x3c], edx
movzx eax, word [esp + 0x5c]
mov dword [esp], ebx
mov word [esp + 0x70], ax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
call eax
sub esp, 0xc
mov ecx, ebp
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0
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.00490f20
mov eax, dword [esp + 0x80]
mov edx, dword [eax]
test edx, edx
je 0x493433
cmp edx, 0xffffffff
je 0x4933c6
lock sub dword [eax], 1
mov eax, dword [esp + 0x80]
je 0x493433
mov dword [esp], edi
call fcn.00497cd0
mov ecx, dword [esp + 0x30]
mov dword [esp], esi
call fcn.004cc9c0
sub esp, 4
mov ecx, esi
mov eax, dword [esp + 0x2c]
call eax
mov eax, dword [esp + 0x6c]
add eax, 1
cmp dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
jge 0x49334f
jmp 0x492d5d
lea ebx, [esp + 0x90]
lea eax, [esp + 0x60]
mov ecx, ebx
mov dword [esp + 0x30], eax
mov dword [esp], eax
call dword [0x57f18c]
push edx
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.004d6e68
mov ecx, ebx
call dword [0x57f1c0]
jmp 0x4913a6
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [0x57ef28]
jmp 0x4933c6
lea eax, [esp + 0x6c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x80]
mov dword [esp], eax
call dword [0x57f188]
mov eax, dword [edi]
sub esp, 4
mov edx, dword [edi + 4]
mov ebx, dword [edi + 8]
mov ecx, eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x94], edx
movzx edx, byte [edi + 0xb]
and ebx, 0x3fffffff
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x80]
mov dword [edi], eax
mov eax, dword [esp + 0x84]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x88]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x98]
and eax, 0xc0000000
or eax, ebx
mov ebx, edx
and edx, 0xffffff80
mov dword [esp + 0x98], eax
shr eax, 0x18
and ebx, 0x40
and eax, 0x3f
or eax, ebx
or edx, eax
mov eax, dword [esp + 0x94]
mov byte [esp + 0x9b], dl
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x88], eax
call dword [0x57f1c0]
jmp 0x492dae
mov eax, dword [0x57f1c0]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x54]
mov dword [esp + 0x48], eax
mov eax, dword [0x57f18c]
mov dword [esp + 0x4c], eax
jmp 0x491da2
mov eax, dword [esp + 0xc8]
mov dword [esp + 4], 0x564ea7
mov ebx, dword [0x57ef1c]
mov dword [esp], eax
call ebx
test eax, eax
jne 0x4935fa
mov dword [esp], 0x10
call fcn.00499b08
mov ebx, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 4], 0
mov ecx, ebx
mov dword [esp], eax
call fcn.0048d230
push ecx
push ecx
mov dword [esp + 0x80], ebx
lea ebx, [esp + 0x90]
call fcn.0049ab60
lea edx, [esp + 0x80]
mov ecx, ebx
mov dword [esp], eax
mov dword [esp + 8], 1
mov dword [esp + 4], edx
call dword [0x57f1b0]
sub esp, 0xc
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.004d6e68
mov ecx, ebx
call dword [0x57f1c0]
jmp 0x49149d
cmp dword [eax + 0xc], 0x10
jne 0x493077
jmp 0x49309c
mov edx, dword [esp + 0x90]
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], edx
call dword [0x57ef28]
jmp 0x49221c
mov eax, dword [esp + 0xc8]
mov dword [esp + 4], str.IDispatch
mov dword [esp], eax
call ebx
test eax, eax
je 0x49362c
mov eax, dword [esp + 0xc8]
mov ebx, dword [0x57f23c]
mov dword [esp], eax
call ebx
test eax, eax
jne 0x4936c1
mov eax, dword [esp + 0xc8]
lea esi, [esp + 0x90]
mov eax, dword [eax]
add eax, dword [eax + 0xc]
mov dword [esp], esi
mov dword [esp + 4], eax
call dword [0x57efa8]
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.0049a160
mov edx, dword [esp + 0x90]
mov ebx, eax
mov ecx, dword [edx]
test ecx, ecx
je 0x4936a6
add ecx, 1
je 0x49367e
lock sub dword [edx], 1
je 0x49369f
lea eax, [esp + 0x54]
jmp 0x492220
lea eax, [esp + 0x80]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x64]
mov dword [esp + 0x24], eax
jmp 0x4930f9
mov edx, dword [esp + 0x90]
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], edx
call dword [0x57ef28]
jmp 0x49367e
mov eax, dword [esp + 0xc8]
mov eax, dword [eax]
mov dword [esp + 0x70], eax
mov edx, dword [eax]
add edx, 1
cmp edx, 1
ja 0x4937a1
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0x2a
mov ecx, dword [esp + 0xc8]
call dword [0x57f268]
push edx
push edx
cmp eax, 0xffffffff
lea esi, [esp + 0x90]
je 0x49373b
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc8]
mov ecx, esi
mov dword [esp], eax
call dword [0x57f270]
push eax
push eax
mov ecx, esi
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x90]
mov dword [esp + 0x90], eax
mov dword [esp + 0x70], edx
call fcn.0049a898
lea eax, [esp + 0x70]
mov dword [esp], eax
call ebx
mov edx, dword [esp + 0x54]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0047f8e0
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xc8]
mov dword [esp], eax
call ebx
lea edx, [esp + 0x80]
mov ecx, esi
mov dword [esp], eax
mov dword [esp + 4], edx
call dword [0x57f1ac]
push ecx
push ecx
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.004d6e68
mov ecx, esi
call dword [0x57f1c0]
lea ecx, [esp + 0x70]
call fcn.0049a898
jmp 0x49149d
lock add dword [eax], 1
jmp 0x4936dc