Function at 0x43d1d0
Capabilities:
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x571b34
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x164
push ebx
push ebp
xor ebp, ebp
push esi
push edi
mov esi, ecx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], ebp
mov ecx, dword [esp + 0x184]
lea eax, [esp + 0x10]
push eax
push ecx
mov dword [esp + 0x184], ebp
call fcn.004342a0
mov edx, dword [esp + 0x18]
add esp, 8
push edx
mov ecx, esi
call fcn.00430c10
dec eax
cmp eax, 0x4d
ja case.0x43d660.95000103
jmp dword [eax*4 + 0x440090]
mov dword [esi + 0x2994], 2
jmp 0x440073
mov dword [esi + 0x2994], 3
jmp 0x440073
mov ecx, esi
call fcn.004368b0
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jae 0x43d2cb
lea ecx, [esp + 0x47]
push ecx
push 0x57e638
lea ecx, [esp + 0xa0]
call fcn.00402250
lea edx, [esp + 0x98]
push edx
lea ecx, [esi + 0x20f8]
mov byte [esp + 0x180], 1
call fcn.00445340
lea ecx, [esp + 0x98]
mov byte [esp + 0x17c], 0
call fcn.004eefd0
jmp case.0x43d660.95000103
add edi, 0xc
push edi
lea ecx, [esp + 0x4c]
call fcn.00404140
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x150]
push ecx
mov ecx, esi
mov byte [esp + 0x184], 2
call fcn.00431ee0
push eax
lea ecx, [esi + 0x20f8]
mov byte [esp + 0x180], 3
call fcn.00445340
mov byte [esp + 0x17c], 2
lea ecx, [esp + 0x14c]
jmp 0x43fbe8
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea eax, [edx + eax - 1]
xor ebx, ebx
shr eax, 2
mov dword [esp + 0x34], ebx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebp
cmp eax, ebp
mov byte [esp + 0x17c], 6
jle 0x43d4d6
mov edi, 0xc
mov dword [esp + 0x24], eax
mov edi, edi
mov ecx, dword [esp + 0x10]
lea edx, [edi + ecx]
push edx
lea ecx, [esp + 0x68]
call fcn.00404140
mov eax, dword [esp + 0x10]
lea ecx, [edi + eax + 0xc]
push ecx
lea ecx, [esp + 0x58]
mov byte [esp + 0x180], 7
call fcn.00404140
lea ecx, [esp + 0x74]
mov byte [esp + 0x17c], 8
call fcn.0043a840
lea edx, [esp + 0x64]
push edx
lea ecx, [esp + 0x78]
mov byte [esp + 0x180], 9
call fcn.00404290
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x84]
call fcn.00404290
lea ecx, [esp + 0x74]
push ecx
lea ecx, [esp + 0x3c]
call fcn.0043ca80
lea edx, [esp + 0x54]
push edx
call fcn.004accc0
add esp, 4
mov dword [esp + 0x1c], eax
cmp ebx, eax
lea eax, [esp + 0x1c]
jl 0x43d40e
lea eax, [esp + 0x34]
mov ebx, dword [eax]
mov eax, dword [esp + 0x10]
lea ecx, [edi + eax + 0x18]
push ecx
mov ecx, esi
mov dword [esp + 0x38], ebx
call fcn.00439ed0
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
lea eax, [edi + edx + 0x24]
push eax
mov ecx, esi
call fcn.00432330
mov ebp, eax
push ebp
mov ecx, esi
call fcn.0042e9a0
test al, al
je 0x43d491
push ebp
lea ecx, [esp + 0xb0]
push ecx
mov ecx, esi
call fcn.00430e10
lea edx, [esp + 0xac]
push edx
lea ecx, [esp + 0x2c]
mov byte [esp + 0x180], 0xa
call fcn.00433f20
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x4c]
call fcn.004109a0
lea ecx, [esp + 0xac]
mov byte [esp + 0x17c], 9
call fcn.004eefd0
lea ecx, [esp + 0x74]
mov byte [esp + 0x17c], 8
call fcn.00430450
lea ecx, [esp + 0x54]
mov byte [esp + 0x17c], 7
call fcn.004eefd0
lea ecx, [esp + 0x64]
mov byte [esp + 0x17c], 6
call fcn.004eefd0
mov eax, dword [esp + 0x24]
add edi, 0x30
dec eax
mov dword [esp + 0x24], eax
jne 0x43d380
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esi + 0x20f8]
call fcn.00445eb0
mov al, byte [esi + 0x29b3]
test al, al
mov dword [esi + 0x2994], 0
je 0x43d532
mov edx, dword [esp + 0x184]
mov ebp, dword [esi + 4]
push edx
add ebp, 0x4fc
call fcn.004accc0
add esp, 4
mov ecx, ebp
call fcn.0040e480
mov ecx, ebp
mov edi, eax
call fcn.0040e490
imul edi, ebx
lea eax, [edi + eax + 0x1e]
mov dword [esi + 0x29b4], eax
jmp 0x43d53c
mov dword [esi + 0x29b4], 0xffffffff
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esi + 0x29c4]
call fcn.00412b30
mov ecx, esi
call fcn.0042e960
test al, al
jne 0x43d5c8
mov eax, dword [esi + 4]
lea edx, [esp + 0x28]
push edx
lea ecx, [eax + 0x2d0]
call fcn.00493810
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
xor edi, edi
add eax, edx
je 0x43d5ba
mov ebx, dword [esp + 0x48]
lea esp, [esp]
mov ecx, dword [ebx + edi*4]
push ecx
mov ecx, esi
call fcn.00437540
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
inc edi
add eax, edx
cmp edi, eax
jb 0x43d590
mov esi, dword [esi + 4]
lea ecx, [esi + 0x2d0]
call fcn.00493a80
lea ecx, [esp + 0x48]
mov byte [esp + 0x17c], 5
call fcn.00494040
lea ecx, [esp + 0x28]
mov byte [esp + 0x17c], 4
call fcn.004102b0
lea ecx, [esp + 0x38]
mov byte [esp + 0x17c], 0
call fcn.00433750
jmp 0x440073
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 3
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x18
push edx
mov ecx, esi
mov edi, eax
call fcn.00432330
mov ebx, eax
push ebx
push edi
mov ecx, esi
call fcn.0043cbd0
lea eax, [ebx - 0x5a99624]
cmp eax, 0x16
ja case.0x43d660.95000103
movzx eax, byte [eax + 0x4401d8]
jmp dword [eax*4 + 0x4401c8]
push 0x5a99642
push edi
mov ecx, esi
call fcn.0043d150
push 0x25f
push 0xaa
push edi
mov ecx, esi
call fcn.0043d120
jmp case.0x43d660.95000103
push 0x5a99643
push edi
mov ecx, esi
call fcn.0043d150
push 0x1e0
push 0xd3
push edi
mov ecx, esi
call fcn.0043d120
jmp case.0x43d660.95000103
push 0x5a99644
push edi
mov ecx, esi
call fcn.0043d150
push 0x1e0
push 0xbd
push edi
mov ecx, esi
call fcn.0043d120
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 3
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x18
push edx
mov ecx, esi
mov edi, eax
call fcn.00432330
push eax
push edi
mov ecx, esi
call fcn.0043cd50
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 3
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
push ecx
mov ecx, esi
mov ebx, eax
call fcn.00432330
lea edx, [esp + 0x1c]
push edx
lea ecx, [esi + 0x20e8]
mov edi, eax
mov dword [esp + 0x20], ebx
call fcn.00436970
mov ebp, eax
lea eax, [esp + 0x1c]
lea ebx, [esi + 0x20c4]
push eax
mov ecx, ebx
mov dword [esp + 0x20], edi
call fcn.00433f60
push eax
mov ecx, ebp
call fcn.00441f20
lea ecx, [esp + 0x1c]
push ecx
mov ecx, ebx
mov dword [esp + 0x20], edi
call fcn.00433f60
mov ecx, esi
call fcn.0042e8f0
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 4
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
push ecx
mov ecx, esi
mov edi, eax
call fcn.00439ed0
lea edx, [esp + 0x1c]
push edx
lea ecx, [esi + 0x20e8]
mov ebx, eax
mov dword [esp + 0x20], edi
call fcn.00436970
mov edi, eax
mov eax, dword [esp + 0x10]
add eax, 0x24
push eax
mov ecx, esi
call fcn.00439ed0
push eax
push ebx
mov ecx, edi
call fcn.00442050
mov ecx, esi
call fcn.0042e8f0
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 3
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x18
push edx
mov ecx, esi
mov edi, eax
call fcn.00439ed0
mov ebx, eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esi + 0x20e8]
mov dword [esp + 0x20], edi
call fcn.00436970
push ebx
mov ecx, eax
call fcn.00440550
jmp case.0x43d660.95000103
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
sub edx, ecx
mov eax, 0x2aaaaaab
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 7
jb case.0x43d660.95000103
add ecx, 0xc
push ecx
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
push ecx
mov ecx, esi
mov edi, eax
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x24
push edx
mov ecx, esi
mov ebx, eax
call fcn.00439ed0
mov ebp, eax
mov eax, dword [esp + 0x10]
add eax, 0x30
push eax
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x3c
push ecx
mov ecx, esi
mov dword [esp + 0x28], eax
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x48
push edx
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.00439ed0
mov ecx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x20]
push eax
push ecx
push ebp
push ebx
push edi
mov ecx, esi
call fcn.0043ce10
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov dword [esp + 0x34], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 2
mov dword [esp + 0x24], ebp
jbe 0x43d993
add edi, 0x18
push edi
mov ecx, esi
call fcn.00439ed0
mov dword [esp + 0x24], eax
mov edi, dword [esi + 4]
push 0x2c
add edi, 8
call fcn.0050f08e
add esp, 4
mov dword [esp + 0x20], eax
cmp eax, ebp
mov byte [esp + 0x17c], 0xb
je 0x43d9bc
mov ecx, eax
call fcn.004ac7e0
jmp 0x43d9be
xor eax, eax
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x180], 0
call fcn.0043a7e0
mov ecx, dword [edi]
mov edx, dword [ecx]
mov byte [esp + 0x17c], 0xc
call dword [edx + 0x14]
push eax
lea ecx, [esp + 0x2c]
call fcn.0043a810
mov ecx, dword [esp + 0x38]
push 2
push 0x1e0
push 0x280
mov byte [esp + 0x188], 0xd
call fcn.004acbe0
cmp eax, ebp
je 0x43da62
push str.SnapShot
push ebp
push 0x108
push str.._scene_advCSceneAdv3.cpp
lea ecx, [esp + 0x174]
call fcn.004a2ec0
push eax
call fcn.004a2fb0
mov ecx, dword [esp + 0x38]
add esp, 0xc
cmp ecx, ebp
mov byte [esp + 0x17c], 0xc
je 0x43da44
call fcn.004016a0
mov ecx, dword [esp + 0x3c]
cmp ecx, ebp
mov byte [esp + 0x17c], 0
je case.0x43d660.95000103
call fcn.004016a0
jmp case.0x43d660.95000103
mov eax, dword [esp + 0x38]
mov ebp, dword [eax + 4]
mov eax, dword [esp + 0x28]
mov edx, dword [ebp]
mov ebx, dword [eax]
push 0x64
mov ecx, ebp
mov dword [esp + 0x20], eax
call dword [edx + 8]
push eax
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 4]
mov ecx, dword [esp + 0x24]
push eax
call dword [ebx + 0x10]
xor ebx, ebx
cmp eax, ebx
je 0x43daec
push 0x581634
push ebx
push 0x10a
push str.._scene_advCSceneAdv3.cpp
lea ecx, [esp + 0x17c]
call fcn.004a2ec0
push eax
call fcn.004a2fb0
add esp, 0xc
mov ecx, dword [esp + 0x2c]
cmp ecx, ebx
mov byte [esp + 0x17c], 0xc
je 0x43dace
call fcn.004016a0
mov ecx, dword [esp + 0x3c]
cmp ecx, ebx
mov byte [esp + 0x17c], 0
je case.0x43d660.95000103
call fcn.004016a0
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx]
push ebx
lea eax, [esp + 0xa8]
push eax
call dword [edx + 0x10]
push ebx
lea ecx, [esp + 0x2c]
push ecx
push eax
mov ecx, edi
mov byte [esp + 0x188], 0xe
call fcn.0048fed0
mov ecx, dword [esp + 0xa8]
cmp ecx, ebx
mov byte [esp + 0x17c], 0xd
je 0x43db2f
call fcn.004016a0
lea edx, [esp + 0xac]
push edx
mov ecx, edi
call fcn.004900b0
mov ecx, edi
call fcn.0048fcc0
push 0x3f800000
push ebx
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x80]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], 0x280
mov dword [esp + 0x7c], 0x1e0
call fcn.0042ee10
mov ecx, dword [edi]
mov edx, dword [ecx]
lea eax, [esp + 0x74]
push eax
call dword [edx + 0x80]
mov ecx, dword [edi]
push ebx
push ebx
lea eax, [esp + 0x69]
mov byte [esp + 0x6b], 0
mov byte [esp + 0x6a], 0
mov byte [esp + 0x69], 0
mov edx, dword [ecx]
push eax
call dword [edx + 0x70]
mov ecx, dword [edi]
mov edx, dword [ecx]
push ebx
push ebx
push 0x3f800000
call dword [edx + 0x74]
mov eax, dword [esp + 0x24]
push eax
push edi
mov ecx, esi
call fcn.0042f440
mov ecx, edi
call fcn.0048fd10
mov ecx, edi
call fcn.004902f0
mov ecx, dword [edi]
mov edx, dword [ecx]
lea eax, [esp + 0xac]
push eax
call dword [edx + 0x80]
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], ecx
push edx
lea ecx, [esi + 0x20e8]
call fcn.00436970
mov edi, eax
mov eax, dword [esi + 4]
lea ecx, [eax + 0x4fc]
call fcn.0040e470
mov ecx, edi
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.00441920
mov ecx, esi
call fcn.0042e8f0
jmp 0x43dab9
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 3
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x18
push edx
mov ecx, esi
mov edi, eax
call fcn.00432330
push eax
push edi
mov ecx, esi
call fcn.0043d150
jmp case.0x43d660.95000103
mov eax, dword [esp + 0x10]
add eax, 0xc
push eax
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
push ecx
mov ecx, esi
mov edi, eax
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x24
push edx
mov ecx, esi
mov ebx, eax
call fcn.00439ed0
mov ebp, eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x28]
add esi, 0x20e8
push ecx
mov ecx, esi
mov dword [esp + 0x24], edi
call fcn.00491a70
mov esi, dword [esi]
mov eax, dword [esp + 0x24]
cmp eax, esi
je case.0x43d660.95000103
push ebp
push ebx
lea ecx, [eax + 0x14]
call fcn.00440300
jmp case.0x43d660.95000103
mov edx, dword [esp + 0x10]
add edx, 0xc
push edx
mov ecx, esi
call fcn.00439ed0
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x28]
add esi, 0x20e8
push ecx
mov ecx, esi
call fcn.00491a70
mov esi, dword [esi]
mov eax, dword [esp + 0x24]
cmp eax, esi
je case.0x43d660.95000103
lea ecx, [eax + 0x14]
call fcn.00440330
jmp case.0x43d660.95000103
mov edx, dword [esp + 0x10]
add edx, 0xc
push edx
mov ecx, esi
call fcn.00439ed0
mov edi, eax
mov eax, dword [esp + 0x10]
add eax, 0x18
push eax
mov ecx, esi
call fcn.00439ed0
lea ecx, [esp + 0x1c]
mov ebx, eax
push ecx
lea ecx, [esi + 0x20e8]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edi
call fcn.00436970
cmp ebx, 0x24
mov ebp, eax
mov dword [esp + 0x1c], ebp
je 0x43de22
cmp ebx, 0x32
je 0x43de0b
lea ecx, [esp + 0x74]
call fcn.004a6130
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
sub ecx, ebx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
mov edi, 3
add eax, edx
cmp eax, edi
mov byte [esp + 0x17c], 0xf
jbe 0x43dddb
mov ebp, 0x24
lea ecx, [ebx + ebp]
push ecx
mov ecx, esi
call fcn.00439ed0
push eax
lea ecx, [esp + 0x78]
call fcn.004a63d0
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
sub ecx, ebx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
inc edi
add eax, edx
add ebp, 0xc
cmp edi, eax
jb 0x43dda4
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x74]
push ecx
mov ecx, dword [esp + 0x20]
push edx
call fcn.00442170
lea ecx, [esp + 0x74]
mov byte [esp + 0x17c], 0
call fcn.004a6150
mov ecx, esi
call fcn.0042e8f0
jmp case.0x43d660.95000103
push 1
push 3
mov ecx, ebp
call fcn.00442050
mov ecx, esi
call fcn.0042e8f0
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 3
je 0x43de6b
add edi, 0x24
push edi
mov ecx, esi
call fcn.00439ed0
sub eax, 0
je 0x43de6b
dec eax
jne 0x43de76
push 2
push 0xc
mov ecx, ebp
call fcn.00442050
mov ecx, esi
call fcn.0042e8f0
jmp case.0x43d660.95000103
push 2
push 1
mov ecx, ebp
call fcn.00442050
mov ecx, esi
call fcn.0042e8f0
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 2
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, esi
mov edi, eax
call fcn.0042ed00
cmp edi, 3
mov dword [esi + 0x2a58], 0x140
mov dword [esi + 0x2a5c], 0xf0
ja case.0x43ded6.0
jmp dword [edi*4 + 0x4401f0]
push 1
mov ecx, esi
call fcn.0042ef20
jmp 0x43df92
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 4
jb 0x43df30
add edi, 0x18
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x24
push ecx
mov ecx, esi
mov dword [esi + 0x2a58], eax
call fcn.00439ed0
mov dword [esi + 0x2a5c], eax
push 2
mov ecx, esi
call fcn.0042ef20
jmp 0x43df92
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 4
jb 0x43df80
add edi, 0x18
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x24
push ecx
mov ecx, esi
mov dword [esi + 0x2a58], eax
call fcn.00439ed0
mov dword [esi + 0x2a5c], eax
push 3
mov ecx, esi
call fcn.0042ef20
jmp 0x43df92
mov ecx, esi
call fcn.0042ec60
mov al, 0x7f
mov ecx, esi
mov byte [esi + 0x2a48], al
mov byte [esi + 0x2a49], al
mov dword [esi + 0x2a4c], ebp
mov dword [esi + 0x2a50], ebp
call fcn.0042e8f0
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 3
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
push ecx
mov ecx, esi
mov edi, eax
call fcn.00439ed0
mov ecx, esi
mov ebp, eax
call fcn.0042e970
test al, al
je 0x43e006
xor ebp, ebp
add esi, 0x2a48
mov ecx, esi
call fcn.00404f70
imul edi, edi, 0xff
mov byte [esi], al
mov eax, 0x51eb851f
mul edi
shr edx, 5
mov byte [esi + 1], dl
mov dword [esi + 4], ebp
mov dword [esi + 8], 0
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 5
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
add ecx, 0x18
push ecx
fmul dword [0x57f594]
mov ecx, esi
fstp dword [esp + 0x38]
call fcn.00439ed0
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
add edx, 0x24
push edx
fmul dword [0x5803f4]
mov ecx, esi
fmul dword [0x57f594]
fstp dword [esp + 0x28]
call fcn.00439ed0
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add eax, 0x30
fmul dword [0x5803f4]
push eax
mov ecx, esi
fstp dword [esp + 0x20]
call fcn.00439ed0
mov ecx, esi
mov edi, eax
call fcn.0042e970
test al, al
je 0x43e0dd
xor edi, edi
mov ecx, esi
call fcn.0042ed00
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
push edi
push ecx
push edx
push eax
mov ecx, esi
call fcn.0042efa0
mov ecx, esi
call fcn.0042e8f0
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 3
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
add edx, 0x18
push edx
fmul dword [0x5803f4]
mov ecx, esi
fmul dword [0x57f594]
fstp dword [esp + 0x20]
call fcn.00439ed0
mov ecx, esi
mov edi, eax
call fcn.0042e970
test al, al
je 0x43e16b
xor edi, edi
add esi, 0x2acc
mov ecx, esi
call fcn.00410ac0
fstp dword [esi]
mov eax, dword [esp + 0x1c]
mov dword [esi + 4], eax
mov dword [esi + 8], edi
mov dword [esi + 0xc], ebp
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 2
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, esi
mov edi, eax
call fcn.0042e970
test al, al
je 0x43e1c9
xor edi, edi
add esi, 0x2adc
mov ecx, esi
call fcn.00410ac0
fstp dword [esi]
mov dword [esi + 4], ebp
mov dword [esi + 8], edi
mov dword [esi + 0xc], ebp
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
mov ecx, esi
fmul dword [0x5803f4]
fstp dword [esp + 0x1c]
call fcn.0042ed00
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, esi
call fcn.0042f060
mov ecx, esi
call fcn.0042e8f0
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 4
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
push ecx
mov ecx, esi
mov edi, eax
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x24
push edx
mov ecx, esi
mov ebx, eax
call fcn.00439ed0
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
lea ecx, [esi + 0x2af0]
fmul dword [0x5803f4]
fstp dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
push eax
push ebx
push edi
call fcn.00415260
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 3
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x18
push edx
mov ecx, esi
mov edi, eax
call fcn.00439ed0
mov ecx, esi
mov ebp, eax
call fcn.0042e970
test al, al
je 0x43e30c
xor ebp, ebp
add esi, 0x2b68
mov ecx, esi
call fcn.00404f70
imul edi, edi, 0xff
mov byte [esi], al
mov eax, 0x51eb851f
mul edi
shr edx, 5
mov byte [esi + 1], dl
mov dword [esi + 4], ebp
mov dword [esi + 8], 0
jmp case.0x43d660.95000103
mov ecx, esi
call fcn.0042ecd0
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 4
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
push ecx
mov ecx, esi
mov ebx, eax
call fcn.00439ed0
mov ecx, esi
mov edi, eax
call fcn.0042e970
test al, al
jne 0x43e3a6
mov edx, dword [esp + 0x10]
add edx, 0x24
push edx
mov ecx, esi
call fcn.00439ed0
mov ebp, eax
lea eax, [esp + 0x1c]
push eax
lea edx, [esp + 0x28]
lea ecx, [esi + 0x20e8]
push edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x3c], ecx
call fcn.00491a70
cmp edi, 6
mov ebx, dword [esp + 0x24]
ja case.0x43e3cc.0
jmp dword [edi*4 + 0x440200]
push ebp
push edi
lea ecx, [ebx + 0x14]
call fcn.004405d0
jmp case.0x43e3cc.0
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 5
jb case.0x43e3cc.0
add edi, 0x30
push edi
mov ecx, esi
call fcn.00439ed0
push eax
lea ecx, [esp + 0x68]
push ecx
mov ecx, esi
call fcn.00431150
push ebp
lea edx, [esp + 0x68]
push edx
lea ecx, [ebx + 0x14]
mov byte [esp + 0x184], 0x10
call fcn.004406d0
mov ecx, esi
call fcn.0042e8f0
lea ecx, [esp + 0x64]
mov byte [esp + 0x17c], 0
call fcn.004eefd0
lea ecx, [ebx + 0x14]
call fcn.00440720
test al, al
je case.0x43d660.95000103
push ecx
mov ecx, dword [esp + 0x38]
mov eax, esp
mov dword [esp + 0x24], esp
mov dword [eax], ebx
call fcn.00431950
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 4
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
push ecx
mov ecx, esi
mov edi, eax
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x24
push edx
mov ecx, esi
mov ebx, eax
call fcn.00439ed0
push eax
push ebx
push edi
mov ecx, esi
call fcn.0043d120
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 4
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
push ecx
mov ecx, esi
mov ebp, eax
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x24
push edx
mov ecx, esi
mov ebx, eax
call fcn.00439ed0
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 4
jne 0x43e553
mov ecx, dword [esp + 0x1c]
xor eax, eax
push eax
push ecx
push ebx
push ebp
mov ecx, esi
call fcn.0043cf50
jmp case.0x43d660.95000103
add edi, 0x30
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x1c]
push eax
push ecx
push ebx
push ebp
mov ecx, esi
call fcn.0043cf50
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 4
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
push ecx
mov ecx, esi
mov edi, eax
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x24
push edx
mov ecx, esi
mov dword [esp + 0x38], eax
call fcn.00439ed0
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x24], eax
sub ecx, ebp
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 4
jne 0x43e5eb
xor ebp, ebp
jmp 0x43e5f8
add ebp, 0x30
push ebp
mov ecx, esi
call fcn.00439ed0
mov ebp, eax
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esi + 0x20e8]
mov dword [esp + 0x20], edi
call fcn.00436970
lea ebx, [eax + 0xc]
mov ecx, ebx
call fcn.00410ac0
fstp dword [esp + 0x1c]
push ebp
lea ecx, [ebx + 0x10]
call fcn.00410ac0
fiadd dword [esp + 0x28]
call fcn.0052c1a8
fild dword [esp + 0x38]
push eax
fadd dword [esp + 0x24]
call fcn.0052c1a8
push eax
push edi
mov ecx, esi
call fcn.0043cf50
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 4
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
push ecx
mov ecx, esi
mov ebp, eax
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x24
push edx
mov ecx, esi
mov ebx, eax
call fcn.00439ed0
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 4
jne 0x43e6d1
mov ecx, dword [esp + 0x1c]
xor eax, eax
push eax
push ecx
push ebx
push ebp
mov ecx, esi
call fcn.0043cef0
jmp case.0x43d660.95000103
add edi, 0x30
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x1c]
push eax
push ecx
push ebx
push ebp
mov ecx, esi
call fcn.0043cef0
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 4
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
push ecx
mov ecx, esi
mov ebx, eax
call fcn.00439ed0
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov ebp, eax
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 3
jne 0x43e761
xor eax, eax
push eax
push ebp
push ebx
mov ecx, esi
call fcn.0043d000
jmp case.0x43d660.95000103
add edi, 0x24
push edi
mov ecx, esi
call fcn.00439ed0
push eax
push ebp
push ebx
mov ecx, esi
call fcn.0043d000
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 4
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x18
push edx
mov ecx, esi
mov ebx, eax
call fcn.00439ed0
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov ebp, eax
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 3
jne 0x43e7ec
xor eax, eax
push eax
push ebp
push ebx
mov ecx, esi
call fcn.0043d060
jmp case.0x43d660.95000103
add edi, 0x24
push edi
mov ecx, esi
call fcn.00439ed0
push eax
push ebp
push ebx
mov ecx, esi
call fcn.0043d060
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 4
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x18
push edx
mov ecx, esi
mov ebx, eax
call fcn.00439ed0
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov ebp, eax
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 3
jne 0x43e877
xor eax, eax
push eax
push ebp
push ebx
mov ecx, esi
call fcn.0043d0c0
jmp case.0x43d660.95000103
add edi, 0x24
push edi
mov ecx, esi
call fcn.00439ed0
push eax
push ebp
push ebx
mov ecx, esi
call fcn.0043d0c0
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 4
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x18
push edx
mov ecx, esi
mov ebx, eax
call fcn.00439ed0
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov ebp, eax
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 3
jne 0x43e902
xor eax, eax
push eax
push ebp
push ebx
mov ecx, esi
call fcn.0043cfa0
jmp case.0x43d660.95000103
add edi, 0x24
push edi
mov ecx, esi
call fcn.00439ed0
push eax
push ebp
push ebx
mov ecx, esi
call fcn.0043cfa0
jmp case.0x43d660.95000103
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
sub edx, ecx
mov eax, 0x2aaaaaab
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 6
jb case.0x43d660.95000103
add ecx, 0xc
push ecx
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
push ecx
mov ecx, esi
mov edi, eax
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x24
push edx
mov ecx, esi
mov ebp, eax
call fcn.00439ed0
mov ebx, eax
mov eax, dword [esp + 0x10]
add eax, 0x30
push eax
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x3c
push ecx
mov ecx, esi
mov dword [esp + 0x28], eax
call fcn.00439ed0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
sub ecx, edx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 6
jne 0x43e9b7
xor eax, eax
jmp 0x43e9c6
mov ecx, dword [esp + 0x10]
add ecx, 0x48
push ecx
mov ecx, esi
call fcn.00439ed0
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x28]
push edx
push eax
push ebx
push ebp
push edi
mov ecx, esi
call fcn.0043ce70
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 6
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x18
push edx
mov ecx, esi
mov edi, eax
call fcn.00439ed0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
add eax, 0x24
push eax
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x30
push ecx
mov ecx, esi
mov dword [esp + 0x38], eax
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x3c
push edx
mov ecx, esi
mov dword [esp + 0x3c], eax
call fcn.00439ed0
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
lea eax, [esp + 0x1c]
push eax
fmul dword [0x57f594]
lea ecx, [esi + 0x20e8]
mov dword [esp + 0x20], edi
fstp dword [esp + 0x24]
fild dword [esp + 0x28]
fstp dword [esp + 0x90]
fild dword [esp + 0x38]
fstp dword [esp + 0x94]
fild dword [esp + 0x3c]
fstp dword [esp + 0x98]
call fcn.00436970
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x90]
push edx
lea ecx, [eax + 0xc]
call fcn.00440240
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 3
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
push ecx
mov ecx, esi
mov edi, eax
call fcn.00439ed0
sub eax, ebp
je 0x43eb06
dec eax
jne 0x43eb0a
mov ebx, 1
jmp 0x43eb0e
xor ebx, ebx
jmp 0x43eb0e
mov ebx, dword [esp + 0x20]
cmp edi, 0xffffffff
jne 0x43eb1e
mov dword [esi + 0x2a54], ebx
jmp case.0x43d660.95000103
lea edx, [esp + 0x20]
push edx
lea ecx, [esi + 0x20e8]
mov dword [esp + 0x24], edi
call fcn.00436970
push ebx
lea ecx, [eax + 0xc]
call fcn.00440230
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x3c]
add esi, 0x20e8
push edx
mov ecx, esi
mov dword [esp + 0x28], eax
call fcn.00491a70
mov eax, dword [esi]
mov ecx, dword [esp + 0x38]
cmp ecx, eax
je case.0x43d660.95000103
push ecx
mov eax, esp
mov dword [eax], ecx
mov ecx, esi
mov dword [esp + 0x24], esp
call fcn.00431950
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 3
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
push ecx
mov ecx, esi
mov edi, eax
call fcn.00439ed0
lea edx, [esp + 0x20]
mov ebx, eax
push edx
lea eax, [esp + 0x3c]
add esi, 0x20e8
push eax
mov ecx, esi
mov dword [esp + 0x28], edi
call fcn.00491a70
mov esi, dword [esi]
mov eax, dword [esp + 0x38]
cmp eax, esi
je case.0x43d660.95000103
push ebx
lea ecx, [eax + 0x14]
call fcn.00440570
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 2
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
lea edx, [esp + 0x20]
mov dword [esp + 0x20], eax
push edx
lea eax, [esp + 0x3c]
add esi, 0x20e8
push eax
mov ecx, esi
call fcn.00491a70
mov esi, dword [esi]
mov eax, dword [esp + 0x38]
cmp eax, esi
je case.0x43d660.95000103
lea ecx, [eax + 0x14]
call fcn.00440590
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 3
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x18
push edx
mov ecx, esi
mov edi, eax
call fcn.00439ed0
mov ebp, eax
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x3c]
add esi, 0x20e8
push ecx
mov ecx, esi
mov dword [esp + 0x28], edi
call fcn.00491a70
mov esi, dword [esi]
mov eax, dword [esp + 0x38]
cmp eax, esi
je case.0x43d660.95000103
test ebp, ebp
jle case.0x43d660.95000103
lea esi, [eax + 0x14]
lea ecx, [ecx]
mov ecx, esi
call fcn.00442280
dec ebp
jne 0x43ed00
jmp case.0x43d660.95000103
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
sub edx, ecx
mov eax, 0x2aaaaaab
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 4
jb case.0x43d660.95000103
add ecx, 0xc
push ecx
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
push ecx
lea edx, [esp + 0xf0]
push edx
mov edi, eax
call fcn.004ace80
push str.play
push eax
call fcn.00407070
add esp, 0x10
lea ecx, [esp + 0xec]
mov bl, al
call fcn.004eefd0
mov eax, dword [esp + 0x10]
add eax, 0x24
push eax
lea ecx, [esp + 0x138]
push ecx
call fcn.004ace80
push str.play
push eax
call fcn.00407070
add esp, 0x10
lea ecx, [esp + 0x134]
mov byte [esp + 0x47], al
call fcn.004eefd0
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x3c]
add esi, 0x20e8
push eax
mov ecx, esi
mov dword [esp + 0x28], edi
call fcn.00491a70
mov esi, dword [esi]
mov eax, dword [esp + 0x38]
cmp eax, esi
je case.0x43d660.95000103
mov cl, byte [esp + 0x47]
mov byte [eax + 0x130], bl
mov byte [eax + 0x131], cl
jmp case.0x43d660.95000103
mov edx, dword [esp + 0x10]
add edx, 0xc
push edx
mov ecx, esi
call fcn.00439ed0
inc eax
cmp eax, 4
ja case.0x43d660.95000103
jmp dword [eax*4 + 0x44021c]
lea ecx, [esi + 0x2c]
call fcn.00410f70
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 6
jb case.0x43d660.95000103
add edi, 0x18
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
add ecx, 0x24
push ecx
mov ecx, esi
fstp dword [esp + 0x20]
call fcn.00439ed0
mov edx, dword [esp + 0x10]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
add edx, 0x30
push edx
mov ecx, esi
fstp dword [esp + 0x3c]
call fcn.00439ed0
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
mov ecx, esi
fstp dword [esp + 0x20]
call fcn.0042e970
test al, al
je 0x43ee8d
xor eax, eax
jmp 0x43ee9c
mov eax, dword [esp + 0x10]
add eax, 0x3c
push eax
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x20]
push ecx
push edx
push eax
lea ecx, [esi + 0x2c]
call fcn.00410ee0
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 4
jb case.0x43d660.95000103
add edi, 0x18
push edi
mov ecx, esi
call fcn.00439ed0
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
mov ecx, esi
fmul dword [0x57f594]
fstp dword [esp + 0x20]
call fcn.0042e970
test al, al
je 0x43ef19
xor eax, eax
push eax
mov eax, dword [esp + 0x24]
push eax
lea ecx, [esi + 0x2c]
call fcn.00410f40
jmp case.0x43d660.95000103
mov edx, dword [esp + 0x10]
add edx, 0x24
push edx
mov ecx, esi
call fcn.00439ed0
push eax
mov eax, dword [esp + 0x24]
push eax
lea ecx, [esi + 0x2c]
call fcn.00410f40
jmp case.0x43d660.95000103
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
sub edx, ecx
mov eax, 0x2aaaaaab
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 6
jb case.0x43d660.95000103
add ecx, 0x18
push ecx
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x24
push ecx
mov ecx, esi
mov edi, eax
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x30
push edx
mov ecx, esi
mov ebx, eax
call fcn.00439ed0
mov ebp, eax
mov eax, dword [esp + 0x10]
add eax, 0x3c
push eax
mov ecx, esi
call fcn.00439ed0
push eax
push ebp
push ebx
push edi
lea ecx, [esi + 0x2c]
call fcn.00410a20
jmp case.0x43d660.95000103
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
sub edx, ecx
mov eax, 0x2aaaaaab
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 6
jb case.0x43d660.95000103
add ecx, 0x18
push ecx
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x24
push ecx
mov ecx, esi
mov edi, eax
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x30
push edx
mov ecx, esi
mov ebx, eax
call fcn.00439ed0
mov ebp, eax
mov eax, dword [esp + 0x10]
add eax, 0x3c
push eax
mov ecx, esi
call fcn.00439ed0
push eax
push ebp
push ebx
push edi
lea ecx, [esi + 0x2c]
call fcn.004109e0
jmp case.0x43d660.95000103
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 3
jb case.0x43d660.95000103
lea ecx, [esp + 0x28]
call fcn.004021e0
mov ebx, dword [esp + 0x10]
lea edi, [ebx + 0xc]
push str.none
push edi
mov byte [esp + 0x184], 0x11
call fcn.00407070
add esp, 8
test al, al
mov ecx, esi
je 0x43f0dc
add ebx, 0x18
push ebx
or ebp, 0xffffffff
call fcn.00432330
mov edi, eax
push edi
lea edx, [esp + 0x108]
push edx
mov ecx, esi
call fcn.00430e10
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x180], 0x12
call fcn.00404290
lea ecx, [esp + 0x104]
mov byte [esp + 0x17c], 0x11
call fcn.004eefd0
mov eax, dword [esp + 0x28]
push 0
push eax
call fcn.0055cae6
add esp, 8
cmp eax, 0xffffffff
jne 0x43f12b
lea ecx, [esp + 0x28]
mov byte [esp + 0x17c], 0
call fcn.004eefd0
jmp case.0x43d660.95000103
push edi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
push ecx
mov ecx, esi
mov ebp, eax
call fcn.00432330
mov edi, eax
push edi
lea edx, [esp + 0x120]
push edx
mov ecx, esi
call fcn.00430e10
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x180], 0x13
call fcn.00404290
lea ecx, [esp + 0x11c]
mov byte [esp + 0x17c], 0x11
call fcn.004eefd0
lea eax, [esp + 0x28]
push eax
lea ecx, [esi + 0x29c4]
call fcn.00433f20
mov ecx, esi
call fcn.0042e960
test al, al
jne 0x43f181
mov eax, dword [esi + 4]
lea ecx, [esp + 0x28]
push ecx
lea ecx, [eax + 0x2d0]
call fcn.004936b0
test ebp, ebp
jl 0x43f165
push ebp
mov ecx, esi
call fcn.00437540
push edi
mov ecx, esi
call fcn.0042e9a0
test al, al
je 0x43f181
mov esi, dword [esi + 4]
push 0
lea ecx, [esi + 0x2d0]
call fcn.004938e0
lea ecx, [esp + 0x28]
mov byte [esp + 0x17c], 0
call fcn.004eefd0
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov ebp, eax
mov ecx, edi
sub ecx, ebx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 2
mov dword [esp + 0x34], 0
mov byte [esp + 0x24], 1
jbe 0x43f20c
add ebx, 0x18
push ebx
mov ecx, esi
call fcn.00439ed0
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x34], eax
sub edi, ebx
mov eax, 0x2aaaaaab
imul edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 3
jbe 0x43f239
add ebx, 0x24
push ebx
mov ecx, esi
call fcn.00439ed0
dec eax
neg eax
sbb al, al
inc al
mov byte [esp + 0x24], al
mov eax, dword [esi + 4]
push ebp
lea ecx, [eax + 0x4fc]
call fcn.0040e910
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x34]
mov eax, dword [esi + 4]
push ecx
push edx
push ebp
lea ecx, [eax + 0x330]
call fcn.00403f30
mov dword [esi + 0x2b84], ebp
jmp case.0x43d660.95000103
mov eax, dword [esi + 4]
push 1
push ebp
push 0xffffffffffffffff
push 0xa
lea ecx, [eax + 0x330]
call fcn.00404020
mov dword [esi + 0x2b84], 0xffffffff
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jb case.0x43d660.95000103
mov ecx, esi
jne 0x43f2f9
call fcn.0042e970
test al, al
je 0x43f2c7
mov eax, 0xa
jmp 0x43f2d6
mov eax, dword [esp + 0x10]
add eax, 0xc
push eax
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esi + 4]
push 1
push ebp
push 0xffffffffffffffff
push eax
add ecx, 0x330
call fcn.00404020
mov dword [esi + 0x2b84], 0xffffffff
jmp case.0x43d660.95000103
add edi, 0xc
push edi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
push ecx
mov ecx, esi
mov ebp, eax
call fcn.00439ed0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edi, eax
sub ecx, edx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
xor ebx, ebx
cmp eax, 3
jbe 0x43f347
mov ecx, dword [esp + 0x10]
add ecx, 0x24
push ecx
mov ecx, esi
call fcn.00439ed0
mov ebx, eax
mov ecx, esi
call fcn.0042e970
push 1
test al, al
mov eax, dword [esi + 4]
push ebx
push edi
lea ecx, [eax + 0x330]
je 0x43f366
call fcn.00403f30
jmp 0x43f36c
push ebp
call fcn.00404020
mov dword [esi + 0x2b84], edi
mov esi, dword [esi + 4]
push edi
lea ecx, [esi + 0x4fc]
call fcn.0040e910
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 3
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
push ecx
mov ecx, esi
mov edi, eax
call fcn.00439ed0
mov dword [esi + 0x2b88], edi
mov esi, dword [esi + 4]
push eax
push edi
lea ecx, [esi + 0x330]
call fcn.00403e70
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 3
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
mov edi, eax
push ecx
mov ecx, esi
add edi, 0xa
call fcn.00432330
push eax
push edi
mov ecx, esi
call fcn.0043cac0
jmp case.0x43d660.95000103
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
sub edx, ecx
mov eax, 0x2aaaaaab
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 3
jb case.0x43d660.95000103
add ecx, 0xc
push ecx
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
mov edi, eax
push ecx
mov ecx, esi
add edi, 0xa
call fcn.00432330
lea edx, [esp + 0x20]
push edx
lea ecx, [esi + 0x20d0]
mov dword [esp + 0x24], eax
call fcn.00433f60
mov ebx, eax
mov eax, dword [esi + 4]
push 1
push ebx
push edi
lea ecx, [eax + 0x3c8]
call fcn.0048e400
lea eax, [esp + 0x20]
push eax
lea ecx, [esi + 0x2b78]
mov dword [esp + 0x24], edi
call fcn.00435230
mov edi, eax
push ebx
mov ecx, edi
call fcn.00404290
mov ecx, esi
mov byte [edi + 0xc], 1
mov byte [edi + 0xd], 0
call fcn.0042e8f0
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 3
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x18
mov edi, eax
push edx
mov ecx, esi
add edi, 0xa
call fcn.00439ed0
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
mov ebx, eax
sub ecx, ebp
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 4
mov byte [esp + 0x24], 0
jb 0x43f548
add ebp, 0x24
push ebp
mov ecx, esi
call fcn.00439ed0
test eax, eax
setne cl
mov byte [esp + 0x24], cl
mov edx, dword [esp + 0x24]
push edx
push ebx
push edi
mov ecx, esi
call fcn.0043cb40
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov edi, eax
mov eax, dword [esi + 4]
add edi, 0xa
push edi
lea ecx, [eax + 0x3c8]
call fcn.0048d5a0
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esi + 0x2b78]
mov dword [esp + 0x24], edi
call fcn.00435230
mov byte [eax + 0xd], 0
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
mov edi, eax
push ecx
mov ecx, esi
add edi, 0xa
call fcn.00439ed0
mov ecx, esi
mov ebx, eax
call fcn.0042e970
test al, al
je 0x43f60b
xor ebx, ebx
mov eax, dword [esi + 4]
push ebx
push edi
lea ecx, [eax + 0x3c8]
call fcn.0048dce0
lea edx, [esp + 0x20]
push edx
lea ecx, [esi + 0x2b78]
mov dword [esp + 0x24], edi
call fcn.00435230
mov dword [eax + 0x10], 0x64
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
mov edi, eax
push ecx
mov ecx, esi
add edi, 0xa
call fcn.00439ed0
mov ecx, esi
mov ebx, eax
call fcn.0042e970
test al, al
je 0x43f68c
xor ebx, ebx
mov eax, dword [esi + 4]
push ebx
push edi
lea ecx, [eax + 0x3c8]
call fcn.0048dd10
lea edx, [esp + 0x20]
push edx
lea ecx, [esi + 0x2b78]
mov dword [esp + 0x24], edi
call fcn.00435230
mov dword [eax + 0x10], ebp
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 4
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
mov edi, eax
push ecx
mov ecx, esi
add edi, 0xa
call fcn.00439ed0
mov edx, dword [esp + 0x10]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
add edx, 0x24
push edx
fmul dword [0x580ed0]
mov ecx, esi
fstp dword [esp + 0x24]
call fcn.00439ed0
mov ecx, esi
mov ebp, eax
call fcn.0042e970
test al, al
je 0x43f72a
xor ebp, ebp
mov ecx, dword [esp + 0x20]
mov eax, dword [esi + 4]
push ebp
push ecx
push edi
lea ecx, [eax + 0x3c8]
call fcn.0048d950
mov edx, dword [esp + 0x10]
add edx, 0x18
push edx
mov ecx, esi
mov dword [esp + 0x24], edi
call fcn.00439ed0
mov edi, eax
lea eax, [esp + 0x20]
push eax
lea ecx, [esi + 0x2b78]
call fcn.00435230
mov dword [eax + 0x10], edi
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 3
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov edx, dword [esp + 0x10]
add edx, 0x18
push edx
mov ecx, esi
mov edi, eax
call fcn.00439ed0
push eax
lea ecx, [esp + 0xc8]
call fcn.004a5700
lea ecx, [edi + 0x18]
lea eax, [esp + 0xc4]
shl ecx, 4
push eax
add ecx, esi
mov byte [esp + 0x180], 0x14
call fcn.00426d60
lea ecx, [esp + 0xc4]
mov byte [esp + 0x17c], 0
call fcn.004eefd0
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x10]
add ecx, 0xc
push ecx
mov ecx, esi
call fcn.00439ed0
test eax, eax
jne case.0x43d660.95000103
lea edi, [esi + 0xc]
mov ecx, edi
mov ebx, 1
call fcn.00443960
test al, al
jne 0x440073
lea esp, [esp]
lea edx, [esp + 0x28]
push edx
mov ecx, edi
call fcn.00443980
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x2c]
je 0x43f8bf
inc dword [esi + 0x29ac]
mov al, byte [eax]
mov cl, al
xor cl, 0x20
add cl, 0x5f
cmp cl, 0x3b
jbe 0x43f8bf
cmp al, 0x3c
jne 0x43f8bf
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x2c]
push eax
mov byte [esp + 0x184], 0x16
call fcn.004342a0
mov ecx, dword [esp + 0x5c]
add esp, 8
push ecx
mov ecx, esi
call fcn.00430c10
cmp eax, 0x3e
jne 0x43f88d
inc ebx
jmp 0x43f893
cmp eax, 0x3f
jne 0x43f893
dec ebx
lea ecx, [esp + 0x54]
mov byte [esp + 0x17c], 0x15
call fcn.004102b0
lea ecx, [esp + 0x28]
mov byte [esp + 0x17c], 0
call fcn.004eefd0
cmp ebx, ebp
je case.0x43d660.95000103
jmp 0x43f8d0
lea ecx, [esp + 0x28]
mov byte [esp + 0x17c], 0
call fcn.004eefd0
mov ecx, edi
call fcn.00443960
test al, al
je 0x43f820
jmp 0x440073
lea ecx, [esi + 0x2190]
call fcn.0042e4e0
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jne 0x43f923
lea ecx, [esi + 0x2190]
call fcn.0042e5f0
jmp case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
push ecx
push eax
lea ecx, [esi + 0x2190]
call fcn.0042e510
jmp case.0x43d660.95000103
mov eax, dword [esi + 4]
push ebp
lea ecx, [eax + 0x114]
call fcn.0048f700
lea ecx, [esi + 0x2190]
call fcn.0042e180
mov dword [esi + 0x2994], 4
mov byte [esi + 0x299c], 1
mov byte [esi + 0x29b0], 0
mov byte [esi + 0x29b1], 0
jmp 0x440073
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 2
jb case.0x43d660.95000103
add edi, 0xc
push edi
lea ecx, [esp + 0x4c]
call fcn.00404140
push 5
push ebp
lea edx, [esp + 0x130]
push edx
lea ecx, [esp + 0x54]
mov byte [esp + 0x188], 0x17
call fcn.00431500
push eax
lea eax, [esp + 0xd8]
push eax
mov byte [esp + 0x184], 0x18
call fcn.004ace80
push str.debug
push eax
call fcn.00407070
add esp, 0x10
lea ecx, [esp + 0xd4]
mov bl, al
call fcn.004eefd0
lea ecx, [esp + 0x128]
mov byte [esp + 0x17c], 0x17
call fcn.004eefd0
test bl, bl
jne 0x43fbed
lea edi, [esi + 0xc]
mov ecx, edi
call fcn.004f1d10
mov ecx, edi
call fcn.00443960
test al, al
jne 0x43faf3
mov bl, 0x1a
lea ebx, [ebx]
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
call fcn.00443980
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 0x3c]
je 0x43fad3
inc dword [esi + 0x29ac]
mov al, byte [eax]
mov dl, al
xor dl, 0x20
add dl, 0x5f
cmp dl, 0x3b
jbe 0x43fad3
cmp al, 0x3c
jne 0x43fad3
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x3c]
push ecx
mov byte [esp + 0x184], bl
call fcn.004342a0
mov edx, dword [esp + 0x30]
add esp, 8
push edx
mov ecx, esi
call fcn.00430c10
cmp eax, 0x44
jne 0x43fac2
mov eax, dword [esp + 0x28]
add eax, 0xc
push eax
lea ecx, [esp + 0x4c]
push ecx
call fcn.00403e80
add esp, 8
test al, al
jne 0x43fbcb
lea ecx, [esp + 0x28]
mov byte [esp + 0x17c], 0x19
call fcn.004102b0
lea ecx, [esp + 0x38]
mov byte [esp + 0x17c], 0x17
call fcn.004eefd0
mov ecx, edi
call fcn.00443960
test al, al
je 0x43fa40
mov ecx, edi
call fcn.00443950
mov dword [esi + 0x29ac], ebp
mov bl, 0x1c
mov ecx, edi
call fcn.004f1d10
lea edx, [esp + 0x38]
push edx
mov ecx, edi
call fcn.00443980
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 0x3c]
jne 0x43fb32
lea ecx, [esp + 0x38]
mov byte [esp + 0x17c], 0x17
call fcn.004eefd0
jmp 0x43fb02
inc dword [esi + 0x29ac]
mov al, byte [eax]
mov cl, al
xor cl, 0x20
add cl, 0x5f
cmp cl, 0x3b
jbe 0x43fbab
cmp al, 0x3c
jne 0x43fbab
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x184], bl
call fcn.004342a0
mov ecx, dword [esp + 0x30]
add esp, 8
push ecx
mov ecx, esi
call fcn.00430c10
cmp eax, 0x44
jne 0x43fb9a
mov edx, dword [esp + 0x28]
add edx, 0xc
push edx
lea eax, [esp + 0x4c]
push eax
call fcn.00403e80
add esp, 8
test al, al
jne 0x43fbc1
lea ecx, [esp + 0x28]
mov byte [esp + 0x17c], 0x1b
call fcn.004102b0
lea ecx, [esp + 0x38]
mov byte [esp + 0x17c], 0x17
call fcn.004eefd0
jmp 0x43fb02
mov byte [esp + 0x17c], 0x1b
jmp 0x43fbd3
mov byte [esp + 0x17c], 0x19
lea ecx, [esp + 0x28]
call fcn.004102b0
mov byte [esp + 0x17c], 0x17
lea ecx, [esp + 0x38]
call fcn.004eefd0
lea ecx, [esp + 0x48]
mov byte [esp + 0x17c], 0
call fcn.004eefd0
jmp case.0x43d660.95000103
mov ecx, dword [esi + 8]
call fcn.004abbe0
jmp 0x440073
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
sub ecx, edx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 2
jb case.0x43d660.95000103
mov ecx, esi
call fcn.0042e970
test al, al
jne case.0x43d660.95000103
mov edx, dword [esp + 0x10]
add edx, 0xc
push edx
mov ecx, esi
call fcn.00439ed0
cmp eax, ebp
je case.0x43d660.95000103
mov dword [esi + 0x29a4], eax
mov dword [esi + 0x2994], 1
jmp 0x440073
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
cmp eax, ebp
jge 0x43fcaa
mov eax, dword [esi + 4]
lea ecx, [eax + 0x4fc]
call fcn.0040e480
push eax
lea ecx, [esi + 0x20f8]
call fcn.0040e620
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 2
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
sub eax, ebp
je 0x43fd2e
dec eax
je 0x43fd2a
dec eax
jne case.0x43d660.95000103
push 2
lea ecx, [esi + 0x20f8]
call fcn.00444ed0
lea ecx, [esp + 0x10]
mov dword [esp + 0x17c], 0xffffffff
call fcn.004102b0
xor al, al
mov ecx, dword [esp + 0x174]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x170
ret 4
push 1
jmp 0x43fcee
push ebp
jmp 0x43fcee
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 3
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, dword [esp + 0x10]
add ecx, 0x18
push ecx
mov ecx, esi
mov edi, eax
call fcn.00439ed0
push eax
push edi
lea ecx, [esi + 0x20f8]
call fcn.00444e30
jmp case.0x43d660.95000103
mov edx, dword [esp + 0x10]
add edx, 0xc
push edx
mov ecx, esi
call fcn.00439ed0
mov edi, eax
cmp edi, ebp
jge 0x43fd9e
lea ecx, [esi + 0x20f4]
call fcn.004054d0
push edi
mov ecx, esi
call fcn.0043aa70
jmp case.0x43d660.95000103
mov eax, dword [esp + 0x10]
add eax, 0xc
push eax
mov ecx, esi
call fcn.00439ed0
mov esi, dword [esi + 4]
push eax
lea ecx, [esi + 0x4fc]
call fcn.0040e700
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x10]
add ecx, 0xc
push ecx
lea edx, [esp + 0xe4]
push edx
call fcn.004ace80
push 0x581618
push eax
call fcn.00407070
add esp, 0x10
lea ecx, [esp + 0xe0]
mov byte [esi + 0x29b2], al
call fcn.004eefd0
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00439ed0
mov ecx, esi
mov edi, eax
call fcn.0042e960
test al, al
jne case.0x43d660.95000103
lea ecx, [esp + 0x10]
push ecx
push edi
lea edx, [esp + 0x50]
push edx
mov ecx, esi
call fcn.0043b980
mov ecx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x48]
sub ecx, ebp
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
xor edi, edi
add eax, edx
mov byte [esp + 0x17c], 0x1d
je 0x43feb4
xor ebx, ebx
mov eax, dword [esi + 4]
add ebp, ebx
push ebp
lea ecx, [eax + 0x418]
call fcn.004057b0
mov ecx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x48]
sub ecx, ebp
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
inc edi
add ecx, edx
add ebx, 0xc
cmp edi, ecx
jb 0x43fe81
lea ecx, [esp + 0x48]
mov byte [esp + 0x17c], 0
call fcn.004102b0
jmp case.0x43d660.95000103
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jb case.0x43d660.95000103
add edi, 0xc
push edi
mov ecx, esi
call fcn.00432330
push eax
lea ecx, [esp + 0x58]
push ecx
mov ecx, esi
call fcn.00431150
mov ecx, esi
mov byte [esp + 0x17c], 0x1e
call fcn.0042e960
test al, al
jne 0x440022
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x114]
push eax
call fcn.004acd70
push eax
lea ecx, [esp + 0x104]
push ecx
mov byte [esp + 0x18c], 0x1f
call fcn.004ace80
push 0x581610
push eax
call fcn.00407070
add esp, 0x18
lea ecx, [esp + 0xf8]
mov bl, al
call fcn.004eefd0
lea ecx, [esp + 0x110]
mov byte [esp + 0x17c], 0x1e
call fcn.004eefd0
test bl, bl
je 0x44000f
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
sub edx, eax
sub edx, 3
push edx
push ebp
lea eax, [esp + 0x160]
push eax
lea ecx, [esp + 0x60]
call fcn.00431500
push 0x581614
push eax
lea ecx, [esp + 0x148]
push ecx
mov byte [esp + 0x188], 0x20
call fcn.0040c800
add esp, 0xc
mov esi, dword [esi + 4]
push eax
lea ecx, [esi + 0x418]
mov byte [esp + 0x180], 0x21
call fcn.004057b0
lea ecx, [esp + 0x140]
mov byte [esp + 0x17c], 0x20
call fcn.004eefd0
lea ecx, [esp + 0x158]
mov byte [esp + 0x17c], 0x1e
call fcn.004eefd0
lea ecx, [esp + 0x54]
mov byte [esp + 0x17c], 0
call fcn.004eefd0
jmp case.0x43d660.95000103
mov esi, dword [esi + 4]
lea edx, [esp + 0x54]
push edx
lea ecx, [esi + 0x418]
call fcn.004057b0
lea ecx, [esp + 0x54]
mov byte [esp + 0x17c], 0
call fcn.004eefd0
jmp case.0x43d660.95000103
mov ecx, esi
call fcn.0042e960
test al, al
jne case.0x43d660.95000103
mov esi, dword [esi + 4]
lea ecx, [esi + 0x418]
call fcn.00405890
jmp case.0x43d660.95000103
mov ecx, esi
call fcn.0042e960
test al, al
jne case.0x43d660.95000103
mov dword [esi + 0x2994], 9
lea ecx, [esp + 0x10]
mov dword [esp + 0x17c], 0xffffffff
call fcn.004102b0
mov al, 1
jmp 0x43fd0f