Function at 0x56bbe0
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x661228
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x168
push ebx
mov ebx, ecx
push ebp
push esi
mov eax, dword [ebx + 0x34]
xor esi, esi
cmp eax, esi
push edi
mov dword [esp + 0x30], ebx
jne 0x56bc15
xor eax, eax
jmp 0x56cc39
lea eax, [esp + 0x48]
mov ecx, ebx
push eax
call fcn.005775f0
mov ecx, dword [eax]
mov dword [esp + 0x88], ecx
mov edx, dword [eax + 4]
fld dword [esp + 0x88]
mov ecx, dword [eax + 8]
mov dword [esp + 0x8c], edx
fcomp dword [esp + 0x8c]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], edx
fnstsw ax
test ah, 1
je 0x56bc72
fld dword [esp + 0x90]
fcomp dword [esp + 0x94]
fnstsw ax
test ah, 1
jne 0x56bc79
xor eax, eax
jmp 0x56cc39
mov ecx, ebx
call fcn.0056bab0
mov ebp, eax
cmp ebp, esi
jne 0x56bc8d
xor eax, eax
jmp 0x56cc39
mov ecx, ebx
call fcn.0056ba90
cmp eax, esi
jne 0x56bc9f
xor eax, eax
jmp 0x56cc39
mov ecx, ebp
call fcn.004c3aa0
cmp eax, esi
mov dword [esp + 0x40], eax
jne 0x56bd25
mov eax, dword [ebx + 0xc]
push eax
call fcn.00493450
mov edi, eax
add esp, 4
cmp edi, esi
mov dword [esp + 0x40], edi
jne 0x56bcf0
push ecx
mov ecx, esp
mov dword [esp + 0x84], esp
push 0xffffffffffffffff
push str.Helvetica
call fcn.00498990
mov ecx, dword [ebx + 0xc]
push ecx
call fcn.004935b0
mov edi, eax
add esp, 8
cmp edi, esi
mov dword [esp + 0x40], edi
je 0x56bd25
mov dword [esp + 0x38], esi
mov ecx, dword [ebx + 0x34]
lea edx, [esp + 0x38]
push edx
push edi
mov dword [esp + 0x188], esi
call fcn.00494b60
push edi
mov ecx, ebp
call fcn.004c3b70
lea ecx, [esp + 0x38]
mov dword [esp + 0x180], 0xffffffff
call fcn.00498970
push 0x110
call fcn.0061f973
add esp, 4
mov dword [esp + 0x68], eax
cmp eax, esi
mov dword [esp + 0x180], 1
je 0x56bd50
mov ecx, eax
call fcn.00598110
mov ebx, eax
jmp 0x56bd52
xor ebx, ebx
lea ecx, [esp + 0x14c]
mov dword [esp + 0x180], 0xffffffff
mov dword [esp + 0x108], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0x11c], esi
mov dword [esp + 0x12c], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x120], 0
mov dword [esp + 0x138], esi
mov dword [esp + 0x148], 0
mov dword [esp + 0x144], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0x13c], 0
call fcn.0056cd10
mov ecx, 0x1f
xor eax, eax
lea edi, [esp + 0xfc]
mov dword [esp + 0x16c], esi
mov dword [esp + 0x168], esi
mov dword [esp + 0x164], esi
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x48]
push eax
mov dword [esp + 0x134], esi
mov dword [esp + 0x138], 1
mov dword [esp + 0x164], 0x41100000
mov dword [esp + 0x178], esi
call fcn.0056bad0
mov ecx, dword [eax]
mov dword [esp + 0xfc], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x100], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x104], ecx
mov ecx, ebp
mov edx, dword [eax + 0xc]
mov dword [esp + 0x10c], esi
mov dword [esp + 0x108], edx
mov dword [esp + 0x114], esi
call fcn.004c2e40
cmp eax, 4
mov dword [esp + 0x80], eax
ja case.0x56be9a.71
jmp dword [eax*4 + 0x56cc54]
mov edi, 0xc8000001
jmp 0x56bebb
mov edi, 0xc8000004
jmp 0x56bebb
mov edi, 0xc8000002
jmp 0x56bebb
mov edi, 0xc8000008
mov ecx, ebp
call fcn.004c37c0
dec eax
cmp eax, 5
ja case.default.0x56bec8
jmp dword [eax*4 + 0x56cc68]
or edi, 0x20
jmp 0x56befc
or edi, 0x40
jmp 0x56befc
or edi, 0x80
jmp 0x56befc
or edi, 0x100
jmp 0x56befc
or edi, 0x200
jmp 0x56befc
or edi, 0x400
jmp 0x56befc
or edi, 0x10
push ecx
mov dword [esp + 0x11c], edi
mov ecx, esp
mov dword [esp + 0x38], esp
push 0xffffffffffffffff
push 0x6ee380
call fcn.00498990
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x48]
push eax
push ecx
mov ecx, ebp
call fcn.004c33c0
mov eax, dword [esp + 0x44]
cmp eax, esi
jle 0x56c053
fld dword [esp + 0x18]
fcomp dword [0x670244]
mov dword [esp + 0x48], eax
fnstsw ax
test ah, 0x41
jne 0x56bf63
fld dword [esp + 0x18]
fld dword [esp + 0x18]
fcomp dword [0x66d22c]
fnstsw ax
test ah, 1
je 0x56bf6f
fstp dword [esp + 0x4c]
jmp 0x56bf79
fld dword [0x670244]
fstp dword [esp + 0x4c]
jmp 0x56bf79
fstp st(0)
mov dword [esp + 0x4c], 0x3f800000
fld dword [esp + 0x1c]
fcomp dword [0x670244]
fnstsw ax
test ah, 0x41
jne 0x56bfa5
fld dword [esp + 0x1c]
fld dword [esp + 0x1c]
fcomp dword [0x66d22c]
fnstsw ax
test ah, 1
je 0x56bfb1
fstp dword [esp + 0x50]
jmp 0x56bfbb
fld dword [0x670244]
fstp dword [esp + 0x50]
jmp 0x56bfbb
fstp st(0)
mov dword [esp + 0x50], 0x3f800000
fld dword [esp + 0x20]
fcomp dword [0x670244]
fnstsw ax
test ah, 0x41
jne 0x56bfe7
fld dword [esp + 0x20]
fld dword [esp + 0x20]
fcomp dword [0x66d22c]
fnstsw ax
test ah, 1
je 0x56bff3
fstp dword [esp + 0x54]
jmp 0x56bffd
fld dword [0x670244]
fstp dword [esp + 0x54]
jmp 0x56bffd
fstp st(0)
mov dword [esp + 0x54], 0x3f800000
fld dword [esp + 0x24]
fcomp dword [0x670244]
fnstsw ax
test ah, 0x41
jne 0x56c029
fld dword [esp + 0x24]
fld dword [esp + 0x24]
fcomp dword [0x66d22c]
fnstsw ax
test ah, 1
je 0x56c035
fstp dword [esp + 0x58]
jmp 0x56c03f
fld dword [0x670244]
fstp dword [esp + 0x58]
jmp 0x56c03f
fstp st(0)
mov dword [esp + 0x58], 0x3f800000
mov ecx, 5
lea esi, [esp + 0x48]
lea edi, [esp + 0x11c]
rep movsd dword es:[edi], dword [esi]
xor esi, esi
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 0xffffffffffffffff
push 0x6ece30
call fcn.00498990
lea edx, [esp + 0x1c]
lea eax, [esp + 0x48]
push edx
push eax
mov ecx, ebp
call fcn.004c33c0
mov eax, dword [esp + 0x44]
cmp eax, esi
jle 0x56c1a3
fld dword [esp + 0x18]
fcomp dword [0x670244]
mov dword [esp + 0x48], eax
fnstsw ax
test ah, 0x41
jne 0x56c0b3
fld dword [esp + 0x18]
fld dword [esp + 0x18]
fcomp dword [0x66d22c]
fnstsw ax
test ah, 1
je 0x56c0bf
fstp dword [esp + 0x4c]
jmp 0x56c0c9
fld dword [0x670244]
fstp dword [esp + 0x4c]
jmp 0x56c0c9
fstp st(0)
mov dword [esp + 0x4c], 0x3f800000
fld dword [esp + 0x1c]
fcomp dword [0x670244]
fnstsw ax
test ah, 0x41
jne 0x56c0f5
fld dword [esp + 0x1c]
fld dword [esp + 0x1c]
fcomp dword [0x66d22c]
fnstsw ax
test ah, 1
je 0x56c101
fstp dword [esp + 0x50]
jmp 0x56c10b
fld dword [0x670244]
fstp dword [esp + 0x50]
jmp 0x56c10b
fstp st(0)
mov dword [esp + 0x50], 0x3f800000
fld dword [esp + 0x20]
fcomp dword [0x670244]
fnstsw ax
test ah, 0x41
jne 0x56c137
fld dword [esp + 0x20]
fld dword [esp + 0x20]
fcomp dword [0x66d22c]
fnstsw ax
test ah, 1
je 0x56c143
fstp dword [esp + 0x54]
jmp 0x56c14d
fld dword [0x670244]
fstp dword [esp + 0x54]
jmp 0x56c14d
fstp st(0)
mov dword [esp + 0x54], 0x3f800000
fld dword [esp + 0x24]
fcomp dword [0x670244]
fnstsw ax
test ah, 0x41
jne 0x56c179
fld dword [esp + 0x24]
fld dword [esp + 0x24]
fcomp dword [0x66d22c]
fnstsw ax
test ah, 1
je 0x56c185
fstp dword [esp + 0x58]
jmp 0x56c18f
fld dword [0x670244]
fstp dword [esp + 0x58]
jmp 0x56c18f
fstp st(0)
mov dword [esp + 0x58], 0x3f800000
mov ecx, 5
lea esi, [esp + 0x48]
lea edi, [esp + 0x138]
rep movsd dword es:[edi], dword [esi]
xor esi, esi
mov edi, dword [esp + 0x30]
mov ecx, edi
call fcn.00578490
mov ecx, edi
mov dword [esp + 0x134], eax
call fcn.00579440
dec eax
mov ecx, 3
cmp eax, ecx
ja case.default.0x56c1c6
jmp dword [eax*4 + 0x56cc80]
mov eax, ecx
mov dword [esp + 0x130], 1
mov dword [esp + 0x164], eax
mov dword [esp + 0x168], ecx
mov dword [esp + 0x16c], esi
jmp 0x56c23d
mov ecx, dword [esp + 0x134]
mov dword [esp + 0x130], 2
lea edx, [ecx + ecx]
mov dword [esp + 0x134], edx
jmp 0x56c23d
mov eax, dword [esp + 0x134]
mov dword [esp + 0x130], ecx
lea ecx, [eax + eax]
mov dword [esp + 0x134], ecx
jmp 0x56c23d
mov dword [esp + 0x130], 4
jmp 0x56c23d
mov dword [esp + 0x130], esi
lea edx, [esp + 0x3c]
mov ecx, ebp
push edx
call fcn.004c3910
push esi
lea ecx, [esp + 0x40]
mov dword [esp + 0x184], 2
call fcn.00573910
test eax, eax
je 0x56c3a2
lea eax, [esp + 0x18]
push esi
lea ecx, [esp + 0x48]
push eax
push ecx
lea ecx, [esp + 0x48]
call fcn.004bea30
fld dword [esp + 0x18]
fcomp dword [0x670244]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x48], edx
fnstsw ax
test ah, 0x41
jne 0x56c2ae
fld dword [esp + 0x18]
fld dword [esp + 0x18]
fcomp dword [0x66d22c]
fnstsw ax
test ah, 1
je 0x56c2ba
fstp dword [esp + 0x4c]
jmp 0x56c2c4
fld dword [0x670244]
fstp dword [esp + 0x4c]
jmp 0x56c2c4
fstp st(0)
mov dword [esp + 0x4c], 0x3f800000
fld dword [esp + 0x1c]
fcomp dword [0x670244]
fnstsw ax
test ah, 0x41
jne 0x56c2f0
fld dword [esp + 0x1c]
fld dword [esp + 0x1c]
fcomp dword [0x66d22c]
fnstsw ax
test ah, 1
je 0x56c2fc
fstp dword [esp + 0x50]
jmp 0x56c306
fld dword [0x670244]
fstp dword [esp + 0x50]
jmp 0x56c306
fstp st(0)
mov dword [esp + 0x50], 0x3f800000
fld dword [esp + 0x20]
fcomp dword [0x670244]
fnstsw ax
test ah, 0x41
jne 0x56c332
fld dword [esp + 0x20]
fld dword [esp + 0x20]
fcomp dword [0x66d22c]
fnstsw ax
test ah, 1
je 0x56c33e
fstp dword [esp + 0x54]
jmp 0x56c348
fld dword [0x670244]
fstp dword [esp + 0x54]
jmp 0x56c348
fstp st(0)
mov dword [esp + 0x54], 0x3f800000
fld dword [esp + 0x24]
fcomp dword [0x670244]
fnstsw ax
test ah, 0x41
jne 0x56c374
fld dword [esp + 0x24]
fld dword [esp + 0x24]
fcomp dword [0x66d22c]
fnstsw ax
test ah, 1
je 0x56c380
fstp dword [esp + 0x58]
jmp 0x56c38a
fld dword [0x670244]
fstp dword [esp + 0x58]
jmp 0x56c38a
fstp st(0)
mov dword [esp + 0x58], 0x3f800000
mov ecx, 5
lea esi, [esp + 0x48]
lea edi, [esp + 0x14c]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x30]
xor esi, esi
mov dword [esp + 0x78], esi
lea ecx, [esp + 0x3c]
mov byte [esp + 0x180], 3
call fcn.004be1c0
test eax, eax
je 0x56c3d9
lea eax, [esp + 0x34]
lea ecx, [esp + 0x78]
push eax
push ecx
lea ecx, [esp + 0x44]
call fcn.004be230
mov edx, dword [esp + 0x34]
mov dword [esp + 0x160], edx
fld dword [esp + 0x160]
fcomp dword [0x670244]
fnstsw ax
test ah, 0x41
je 0x56c3f8
or dword [esp + 0x118], 0x400000
mov ecx, dword [edi + 0x34]
call fcn.00494cc0
mov dword [esp + 0x7c], esi
cmp eax, esi
mov byte [esp + 0x180], 4
je 0x56c41e
lea ecx, [esp + 0x7c]
push ecx
mov ecx, dword [edi + 0x34]
push eax
call fcn.00494b40
push 0x28
call fcn.0061f973
add esp, 4
mov dword [esp + 0x68], eax
cmp eax, esi
mov byte [esp + 0x180], 5
je 0x56c444
push edi
mov ecx, eax
call fcn.00598bd0
mov edi, eax
jmp 0x56c446
xor edi, edi
mov eax, dword [esp + 0x40]
mov edx, dword [edi]
push eax
mov ecx, edi
mov dword [esp + 0x38], edi
mov byte [esp + 0x184], 4
call dword [edx + 0x14]
mov edx, dword [edi]
lea eax, [esp + 0x78]
push eax
mov ecx, edi
call dword [edx + 0x18]
mov dword [esp + 0x110], edi
mov edx, dword [ebx]
lea eax, [esp + 0xfc]
mov ecx, ebx
push eax
call dword [edx + 8]
test eax, eax
je 0x56cbe5
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x74], esi
push ecx
mov byte [esp + 0x184], 9
mov ecx, esp
mov dword [esp + 0x88], esp
push 0xffffffffffffffff
push 0x71e1a8
call fcn.00498990
mov ecx, ebp
call fcn.004c2f70
cmp eax, esi
je 0x56c4fe
lea ecx, [esp + 0x10]
push ecx
mov ecx, ebp
call fcn.0055d200
push eax
lea ecx, [esp + 0x70]
mov byte [esp + 0x184], 0xa
call fcn.004a2150
lea ecx, [esp + 0x10]
mov byte [esp + 0x180], 9
call fcn.00498970
lea edx, [esp + 0x6c]
mov ecx, ebx
push edx
push 1
call fcn.005985d0
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0xffffffffffffffff
push 0x71e314
call fcn.00498990
mov ecx, ebp
call fcn.004c2f70
cmp eax, esi
je 0x56c559
lea eax, [esp + 0x10]
mov ecx, ebp
push eax
call fcn.0056cc90
push eax
lea ecx, [esp + 0x64]
mov byte [esp + 0x184], 0xb
call fcn.004a2150
lea ecx, [esp + 0x10]
mov byte [esp + 0x180], 9
call fcn.00498970
lea ecx, [esp + 0x60]
push ecx
push 2
mov ecx, ebx
call fcn.005985d0
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0xffffffffffffffff
push 0x71e310
call fcn.00498990
mov ecx, ebp
call fcn.004c2f70
cmp eax, esi
je 0x56c5b4
lea edx, [esp + 0x10]
mov ecx, ebp
push edx
call fcn.0056ccd0
push eax
lea ecx, [esp + 0x78]
mov byte [esp + 0x184], 0xc
call fcn.004a2150
lea ecx, [esp + 0x10]
mov byte [esp + 0x180], 9
call fcn.00498970
lea eax, [esp + 0x74]
mov ecx, ebx
push eax
push 3
call fcn.005985d0
push ecx
mov dword [esp + 0x74], esi
mov ecx, esp
mov dword [esp + 0x30], esp
push 0xffffffffffffffff
push 0x6ecb24
mov dword [esp + 0x70], esi
mov dword [esp + 0x1c], esi
call fcn.00498990
mov ecx, ebp
call fcn.004c2f70
cmp eax, esi
je 0x56c606
push ecx
mov ecx, esp
mov dword [esp + 0x74], esp
push 0xffffffffffffffff
push 0x6ecb24
call fcn.00498990
mov ecx, ebp
call fcn.004c3620
push eax
push 1
mov ecx, ebx
mov dword [esp + 0x78], eax
call fcn.00598630
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 0xffffffffffffffff
push 0x71e30c
call fcn.00498990
mov ecx, ebp
call fcn.004c2f70
cmp eax, esi
je 0x56c64c
push ecx
mov ecx, esp
mov dword [esp + 0x68], esp
push 0xffffffffffffffff
push 0x71e30c
call fcn.00498990
mov ecx, ebp
call fcn.004c3620
push eax
push 2
mov ecx, ebx
mov dword [esp + 0x6c], eax
call fcn.00598630
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 0xffffffffffffffff
push 0x71e308
call fcn.00498990
mov ecx, ebp
call fcn.004c2f70
cmp eax, esi
je 0x56c692
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0xffffffffffffffff
push 0x71e308
call fcn.00498990
mov ecx, ebp
call fcn.004c3620
push eax
push 3
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.00598630
lea ecx, [esp + 0x2c]
push ecx
mov ecx, ebp
call fcn.004c3720
mov edx, dword [eax]
lea eax, [esp + 0x84]
push eax
mov ecx, ebx
mov dword [esp + 0x88], edx
call fcn.00598680
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0xac], esi
push 4
lea ecx, [esp + 0xb4]
mov byte [esp + 0x184], 0xd
call fcn.0049a090
mov ecx, dword [0x6ac00c]
mov dword [esp + 0xdc], 0
mov edx, ecx
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xc8], edx
mov dword [esp + 0xd8], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xe4], esi
mov dword [esp + 0xec], esi
push 0x71e318
lea ecx, [esp + 0xb0]
mov byte [esp + 0x184], 0x10
mov dword [esp + 0xac], 0x3f800000
call fcn.00498b70
push 0xffffffffffffffff
push 0x6e03d0
lea ecx, [esp + 0x40]
call fcn.00498990
mov eax, dword [esp + 0xb4]
push 1
push eax
lea ecx, [esp + 0xb8]
mov byte [esp + 0x188], 0x11
call fcn.0049a280
mov dword [esp + 0x2c], eax
mov dword [esp + 0xf8], eax
cmp eax, esi
mov byte [esp + 0x180], 0x12
je 0x56c7c4
lea ecx, [esp + 0x38]
push ecx
mov ecx, eax
call fcn.00498a90
lea ecx, [esp + 0x38]
mov byte [esp + 0x180], 0x10
call fcn.00498970
mov dword [esp + 0xc4], esi
mov dword [esp + 0xe0], esi
mov dword [esp + 0xe8], esi
mov dword [esp + 0xf0], esi
mov dword [esp + 0xf4], esi
mov dword [esp + 0x14], esi
push 0xffffffffffffffff
push str.Text
lea ecx, [esp + 0x34]
mov byte [esp + 0x188], 0x14
call fcn.00498990
mov edx, dword [esp + 0xb4]
push 1
push edx
lea ecx, [esp + 0xb8]
mov byte [esp + 0x188], 0x15
call fcn.0049a280
mov dword [esp + 0xf8], eax
mov dword [esp + 0x28], eax
cmp eax, esi
mov byte [esp + 0x180], 0x16
je 0x56c855
lea ecx, [esp + 0x2c]
push ecx
mov ecx, eax
call fcn.00498a90
lea ecx, [esp + 0x2c]
mov byte [esp + 0x180], 0x14
call fcn.00498970
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x48]
push edx
mov dword [esp + 0xc8], 1
call fcn.0056b8d0
mov ecx, 6
mov esi, eax
lea edi, [esp + 0xc8]
lea eax, [esp + 0x88]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x30]
push eax
mov ecx, esi
call fcn.0056bad0
mov ecx, dword [eax]
mov dword [esp + 0x98], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x9c], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x40]
mov edx, dword [eax + 0xc]
lea eax, [esp + 0xe4]
push eax
push ecx
mov ecx, dword [esi + 0x34]
mov dword [esp + 0xac], edx
mov dword [esp + 0xe8], 1
call fcn.00494b40
test eax, eax
jne 0x56c8fe
push str.ZiTi
lea ecx, [esp + 0xe8]
call fcn.00498b70
mov edx, dword [esp + 0x40]
mov eax, dword [ebx]
push 0
push 1
mov ecx, ebx
mov dword [esp + 0xf0], edx
call dword [eax + 0xb4]
mov edx, dword [ebx]
lea eax, [esp + 0x14]
push eax
mov ecx, ebx
call dword [edx + 0x18]
mov eax, dword [esp + 0x14]
test eax, eax
lea edi, [eax + 0xc]
jne 0x56c933
mov edi, 0x73d670
mov ecx, dword [esp + 0x70]
push ecx
mov dword [esp + 0xf8], ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0xffffffffffffffff
push 0x73d670
call fcn.00498990
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x9c]
push 0
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x18c], 0x14
lea esi, [edx + 0x10]
call fcn.004921c0
push eax
push edi
mov ecx, esi
call fcn.0057d100
mov eax, dword [esp + 0x80]
cmp eax, 3
je 0x56c9ca
cmp eax, 4
je 0x56c9ca
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0xffffffffffffffff
push 0x73d670
call fcn.00498990
push 1
mov ecx, esi
call fcn.0057de30
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0xffffffffffffffff
push 0x73d670
call fcn.00498990
push 2
mov ecx, esi
call fcn.0057de30
jmp 0x56cae6
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x56ca0e
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0xffffffffffffffff
push 0x71e30c
call fcn.00498990
mov ecx, ebp
call fcn.004c2f70
test eax, eax
jne 0x56ca0e
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0xffffffffffffffff
push 0x73d670
call fcn.00498990
push 1
mov ecx, esi
call fcn.0057de30
jmp 0x56ca7a
mov edx, dword [ebx]
push 0
push 2
mov ecx, ebx
call dword [edx + 0xb4]
mov eax, dword [ebx]
lea ecx, [esp + 0x14]
push ecx
mov ecx, ebx
call dword [eax + 0x18]
mov eax, dword [esp + 0x14]
test eax, eax
lea edi, [eax + 0xc]
jne 0x56ca38
mov edi, 0x73d670
mov edx, dword [esp + 0x64]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0xffffffffffffffff
push 0x73d670
mov dword [esp + 0x100], edx
call fcn.00498990
lea eax, [esp + 0x9c]
push 1
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x18c], 0x14
call fcn.004921c0
push eax
push edi
mov ecx, esi
call fcn.0057d100
mov edx, dword [ebx]
push 0
push 3
mov ecx, ebx
call dword [edx + 0xb4]
mov eax, dword [ebx]
lea ecx, [esp + 0x14]
push ecx
mov ecx, ebx
call dword [eax + 0x18]
mov eax, dword [esp + 0x14]
test eax, eax
lea edi, [eax + 0xc]
jne 0x56caa4
mov edi, 0x73d670
mov edx, dword [esp + 0x10]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0xffffffffffffffff
push 0x73d670
mov dword [esp + 0x100], edx
call fcn.00498990
lea eax, [esp + 0x9c]
push 2
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x18c], 0x14
call fcn.004921c0
push eax
push edi
mov ecx, esi
call fcn.0057d100
lea ecx, [esp + 0x14]
mov byte [esp + 0x180], 0x13
call fcn.00498970
lea ecx, [esp + 0xec]
mov byte [esp + 0x180], 0x1c
call fcn.00498970
lea ecx, [esp + 0xe4]
mov byte [esp + 0x180], 0x1b
call fcn.00498970
lea ecx, [esp + 0xb0]
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0xb4]
xor esi, esi
test eax, eax
mov byte [esp + 0x180], 0x1d
jle 0x56cb63
mov ecx, esi
mov edx, dword [esp + 0xb0]
imul ecx, dword [esp + 0xc0]
add ecx, edx
call fcn.00498970
mov eax, dword [esp + 0xb4]
inc esi
cmp esi, eax
jl 0x56cb3f
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0xb8]
call fcn.0049a0c0
lea ecx, [esp + 0xb0]
mov byte [esp + 0x180], 0x1a
call fcn.0049a0b0
lea ecx, [esp + 0xac]
mov byte [esp + 0x180], 9
call fcn.00498970
lea ecx, [esp + 0x74]
mov byte [esp + 0x180], 8
call fcn.00498970
lea ecx, [esp + 0x60]
mov byte [esp + 0x180], 7
call fcn.00498970
lea ecx, [esp + 0x6c]
mov byte [esp + 0x180], 6
call fcn.00498970
lea ecx, [esp + 0x68]
mov byte [esp + 0x180], 4
call fcn.00498970
mov edi, dword [esp + 0x34]
xor esi, esi
cmp ebx, esi
je 0x56cbf1
mov edx, dword [ebx]
push 1
mov ecx, ebx
call dword [edx]
cmp edi, esi
je 0x56cbfe
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax + 0x40]
lea ecx, [esp + 0x7c]
mov byte [esp + 0x180], 3
call fcn.00498970
lea ecx, [esp + 0x78]
mov byte [esp + 0x180], 2
call fcn.00498970
lea ecx, [esp + 0x3c]
mov dword [esp + 0x180], 0xffffffff
call fcn.00498970
mov eax, 1
mov ecx, dword [esp + 0x178]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x174
ret