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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3a4
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x7ac]
xor ebx, ebx
cmp eax, ebx
push edi
je 0x3001b810
mov ecx, dword [esi + 0x7a4]
call fcn.30054dd0
test eax, eax
je 0x3001b810
lea edi, [esi + 0x28]
mov ecx, edi
call fcn.30098920
test eax, eax
jne 0x3001b810
mov ecx, edi
mov dword [esi + 0x7ac], ebx
call fcn.30098ba0
test eax, eax
je 0x3001b810
mov ecx, esi
call fcn.30018450
cmp eax, ebx
mov dword [esi + 0x7ac], ebx
je 0x3001f328
mov eax, dword [esi + 0x24]
push str._avm1_
push eax
lea ecx, [esp + 0x370]
call fcn.301c7701
cmp dword [esi + 0x54c], ebx
jne 0x3001b852
mov ecx, dword [esi + 0x540]
cmp dword [ecx + 4], ebx
jne 0x3001b852
mov edx, dword [esi + 0x538]
cmp dword [edx + 4], ebx
jne 0x3001b852
mov eax, dword [esi + 0x53c]
cmp dword [eax + 4], ebx
je 0x3001f31c
cmp dword [esi + 0x750], ebx
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x68], ebx
je 0x3001f31c
cmp dword [esi + 0x6b0], ebx
jne 0x3001f31c
mov eax, dword [esi + 0x734]
cmp eax, ebx
jle 0x3001b891
cmp dword [ebp + 8], ebx
je 0x3001f31c
cmp eax, ebx
jne 0x3001b8a4
call dword [sym.imp.WINMM.dll_timeGetTime]
and eax, 0x7fffffff
mov dword [esi + 0x83c], eax
mov ecx, dword [esi + 0x734]
inc ecx
push ecx
mov ecx, esi
call fcn.300f9540
mov ecx, dword [esi + 0x73c]
mov eax, dword [esi + 0x54c]
inc ecx
cmp eax, ebx
mov dword [esi + 0x73c], ecx
jne 0x3001b911
mov eax, dword [esi + 0x20]
push ebx
push eax
push 0x48
call fcn.30208150
add esp, 0xc
cmp eax, ebx
je 0x3001f31c
push esi
mov ecx, eax
call fcn.300bca30
mov edi, eax
cmp edi, ebx
je 0x3001f31c
mov byte [edi + 0x3d], bl
mov edx, dword [esi + 0x540]
push edx
lea ecx, [edi + 0xc]
call fcn.3001a0d0
push edi
lea ecx, [esi + 0x144]
call fcn.300bb1e0
mov eax, dword [esi + 0x54c]
mov dword [esp + 0x2c], 2
mov edi, dword [eax + 8]
mov ecx, esi
mov dword [esp + 0xa8], edi
call fcn.30100540
push 0x30003430
push 4
push 4
lea ecx, [esp + 0x334]
push ecx
mov dword [esp + 0x104], 4
call fcn.30001050
lea ecx, [esi + 0x28]
call fcn.3019d020
cmp dword [esi + 0x54c], edi
je 0x3001f1bc
jmp 0x3001b970
mov ecx, esi
mov dword [esp + 0x84], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x14c], ebx
call fcn.30100540
mov eax, dword [esi + 0x54c]
mov cl, byte [eax + 0x3b]
cmp cl, bl
mov edi, dword [eax + 0xc]
mov dword [esp + 0x14], eax
mov dword [esp + 0x6c], edi
jbe 0x3001b9ae
movzx edx, cl
mov dword [esp + 0xf4], edx
mov eax, dword [eax + 0x18]
cmp eax, ebx
je 0x3001b9c1
mov eax, dword [eax + 0x50]
push eax
lea ecx, [esi + 0x28]
call fcn.300988c0
lea ecx, [esi + 0x28]
call fcn.30098920
test eax, eax
jne 0x3001b9da
lea ecx, [esp + 0x328]
mov dword [esi + 0x7c0], ecx
cmp dword [edi + 4], ebx
je 0x3001f0c2
cmp dword [esi + 0x6b0], ebx
jne 0x3001f1bc
mov ecx, esi
call fcn.30100540
test eax, eax
jne 0x3001f081
mov edx, dword [esp + 0x6c]
mov edi, dword [edx + 4]
mov eax, dword [edi + 0x14]
cmp eax, ebx
mov dword [esp + 0x60], edi
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xd4], ebx
mov byte [esp + 0xe0], bl
je 0x3001ba5e
mov eax, dword [eax + 0x2c]
mov ecx, dword [eax + 0x218]
cmp ecx, ebx
je 0x3001ba49
mov eax, ecx
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x14]
mov ecx, dword [eax + 0x2c]
push edi
push ecx
jmp 0x3001ba71
mov ecx, eax
call fcn.300e4110
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x14]
mov ecx, dword [eax + 0x2c]
push edi
push ecx
jmp 0x3001ba71
mov ecx, esi
call fcn.300f88b0
mov edx, dword [esi + 0x570]
push edi
mov dword [esp + 0x28], eax
push edx
lea ecx, [esp + 0xdc]
push esi
call fcn.3001a1a0
mov eax, dword [esp + 0x24]
cmp eax, 5
mov ecx, dword [esp + 0x14]
mov byte [ecx + 0x39], al
jge 0x3001ba97
cmp byte [ecx + 0x3a], bl
jne 0x3001ba97
mov al, 1
jmp 0x3001ba99
xor al, al
mov ecx, dword [esp + 0x14]
mov byte [ecx + 0x38], al
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
add ecx, eax
push ecx
lea ecx, [esi + 0x28]
call fcn.30099cc0
mov dword [esp + 0x27c], eax
mov eax, dword [edi + 0x18]
cmp eax, 0xffffffff
je 0x3001bb70
mov ecx, dword [edi + 0x14]
cmp ecx, ebx
mov dword [esp + 0xc], ecx
je 0x3001bb70
push eax
lea edx, [esp + 0xc0]
push edx
mov ecx, esi
call fcn.300fd790
mov eax, dword [edi + 0x18]
push eax
call fcn.3011e420
add esp, 4
test eax, eax
je 0x3001bb2b
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0xc0]
push ecx
lea ecx, [esp + 0x30]
call fcn.300ba270
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc]
push ebx
push 1
lea edx, [esp + 0x34]
push edx
mov edx, dword [ecx + 0xc0]
push eax
push edx
mov ecx, esi
call fcn.3010a060
jmp 0x3001bb69
mov eax, dword [esp + 0xbc]
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0xc0]
push eax
push ecx
mov ecx, esi
call fcn.300fbca0
mov eax, dword [esi + 0x674]
cmp eax, ebx
jbe 0x3001bb69
mov edx, dword [esi + 0x67c]
dec eax
mov dword [esi + 0x674], eax
mov dword [edx + eax*4], 2
mov dword [esp + 0xbc], ebx
cmp dword [edi + 0xc], ebx
jne 0x3001bb99
mov eax, dword [esp + 0x6c]
cmp eax, dword [esi + 0x53c]
jne 0x3001bb90
mov eax, dword [edi + 0x14]
cmp eax, ebx
je 0x3001bb90
push eax
mov ecx, esi
call fcn.30104d50
cmp dword [edi + 0xc], ebx
je 0x3001bead
mov ecx, dword [edi + 0x1c]
push ecx
push esi
lea ecx, [esp + 0x3a4]
call fcn.300c4770
mov edx, dword [esp + 0x14]
cmp dword [edx + 0x18], ebx
mov eax, edx
jne 0x3001bc12
cmp byte [eax + 0x3c], bl
je 0x3001bc12
mov ecx, edx
call fcn.300be540
mov eax, dword [edi + 0x14]
cmp eax, ebx
mov dword [esp + 0xc], eax
je 0x3001bbfd
push eax
lea ecx, [esp + 0x158]
call fcn.300ba250
mov ecx, dword [esp + 0x154]
mov edx, dword [esi + 0xc7c]
mov eax, dword [esp + 0x14]
push 1
push ecx
mov ecx, dword [eax + 0x18]
push edx
call fcn.300edb30
mov dword [esp + 0x154], ebx
mov ecx, dword [esp + 0xc]
push ecx
mov ecx, dword [esp + 0x18]
add ecx, 0x14
call fcn.3001a0d0
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x3a], bl
jne 0x3001bc7d
cmp dword [esp + 0xa0], ebx
je 0x3001bc25
cmp dword [eax + 0x28], ebx
jne 0x3001bc7d
mov ecx, dword [eax + 0x28]
add eax, 0x28
cmp ecx, ebx
jne 0x3001bc7d
push ebx
push ebx
push ebx
push 1
mov ecx, esi
call fcn.30101b30
push eax
call fcn.300ebf60
mov ecx, dword [edi + 0x14]
add esp, 0x10
cmp ecx, ebx
je 0x3001bc5d
mov ecx, dword [ecx + 0xc0]
push ebx
push ebx
push eax
push ecx
call fcn.300ebf60
add esp, 0x10
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0x18]
push ebx
push ebx
push eax
push ecx
call fcn.300ebf60
mov ecx, dword [esp + 0x24]
add esp, 0x10
push eax
add ecx, 0x28
call fcn.300d6cf0
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x10]
mov edx, dword [edi + 0xc]
push eax
push ecx
push edx
lea ecx, [esp + 0x3c]
mov dword [esp + 0xac], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], SysStringLen
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov byte [esp + 0x5c], bl
call fcn.300dfc60
cmp dword [esp + 0xb8], ebx
jne 0x3001bceb
mov eax, dword [esp + 0x14]
mov byte [eax + 0x3e], bl
mov ecx, dword [eax + 0x10]
add eax, 0x10
cmp ecx, ebx
jne 0x3001bcdf
mov dword [eax], ebx
jmp 0x3001bcf2
push ebx
push eax
call fcn.3020a280
add esp, 8
jmp 0x3001bcf2
mov dword [esp + 0xb8], ebx
mov dword [esp + 0x8c], ebx
lea esp, [esp]
mov eax, dword [esp + 0x398]
cmp eax, ebx
je 0x3001bd1b
lea ecx, [eax + 0x1800]
cmp dword [ecx + 0x14], ebx
je 0x3001bd1b
call fcn.301c760b
mov eax, dword [edi]
mov ecx, dword [esp + 0x34]
add eax, ecx
mov dword [esi + 0xc2c], eax
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x2c]
add eax, 0x2c
cmp edi, ebx
je 0x3001be13
cmp dword [edi + 0x20], ebx
je 0x3001bd90
mov edx, dword [esp + 0x30]
lea eax, [ecx + edx]
mov edx, dword [esp + 0x14]
cmp edx, dword [edi + 0x28]
jne 0x3001bd90
cmp eax, dword [edi + 0x10]
jb 0x3001bd5a
cmp eax, dword [edi + 0x14]
jb 0x3001bd90
mov ecx, dword [edi + 0x2c]
lea eax, [edx + 0x2c]
cmp dword [eax], ecx
jne 0x3001bd6c
cmp ecx, ebx
jne 0x3001bd6c
mov dword [eax], ebx
jmp 0x3001bd76
push ecx
push eax
call fcn.3020a280
add esp, 8
mov eax, dword [edi + 0x24]
mov dword [esi + 0x6cc], eax
mov dword [edi + 0x30], ebx
push edi
and edi, 0xfffff000
mov ecx, dword [edi]
call fcn.302095c0
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x2c]
add eax, 0x2c
cmp ecx, ebx
je 0x3001be13
mov eax, dword [esi + 0x6cc]
cmp eax, ebx
jne 0x3001be21
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
add edx, ecx
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x14]
mov edi, dword [ecx + 0x2c]
mov eax, dword [edi + 0x20]
add ecx, 0x2c
cmp eax, ebx
jne 0x3001be13
mov eax, dword [esp + 0x1c]
cmp eax, dword [edi]
jb 0x3001bdd4
cmp eax, dword [edi + 4]
jb 0x3001be13
mov eax, dword [edi + 0x2c]
cmp dword [ecx], eax
jne 0x3001bde3
cmp eax, ebx
jne 0x3001bde3
mov dword [ecx], ebx
jmp 0x3001bdf4
push eax
mov eax, dword [esp + 0x18]
add eax, 0x2c
push eax
call fcn.3020a280
add esp, 8
mov dword [edi + 0x30], ebx
push edi
and edi, 0xfffff000
mov ecx, dword [edi]
call fcn.302095c0
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x2c]
add eax, 0x2c
cmp ecx, ebx
jne 0x3001bdb6
mov eax, dword [esi + 0x6cc]
cmp eax, ebx
je 0x3001c189
cmp eax, 2
mov eax, dword [esp + 0x14]
jne 0x3001bfa7
mov ecx, dword [eax + 0x2c]
add eax, 0x2c
cmp ecx, ebx
je 0x3001be93
jmp 0x3001be40
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x2c]
mov ecx, dword [edi + 0x10]
add eax, 0x2c
cmp ecx, ebx
mov dword [esp + 0xc], eax
jne 0x3001be89
mov ecx, dword [edi + 0x2c]
mov edx, edi
cmp edx, ecx
jne 0x3001be66
cmp ecx, ebx
jne 0x3001be66
mov dword [eax], ebx
jmp 0x3001be70
push ecx
push eax
call fcn.3020a280
add esp, 8
mov dword [edi + 0x30], ebx
push edi
and edi, 0xfffff000
mov ecx, dword [edi]
call fcn.302095c0
mov eax, dword [esp + 0xc]
cmp dword [eax], ebx
jne 0x3001be40
mov edi, dword [eax]
cmp edi, ebx
jne 0x3001bfb5
mov dword [esp + 0x68], 1
mov dword [esi + 0x6cc], ebx
lea ecx, [esp + 0x39c]
call fcn.300c3150
mov eax, dword [esp + 0x68]
cmp eax, ebx
je 0x3001bee2
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x3a], bl
jne 0x3001bee2
mov eax, dword [esi + 0x674]
cmp eax, ebx
jbe 0x3001bedc
mov edx, dword [esi + 0x67c]
dec eax
mov dword [esi + 0x674], eax
mov dword [edx + eax*4], 2
xor eax, eax
mov dword [esp + 0x68], eax
cmp dword [esp + 0x84], ebx
jne 0x3001f08e
cmp dword [esi + 0x6b0], ebx
jne 0x3001f08e
cmp eax, ebx
jne 0x3001f08e
cmp dword [esp + 0x90], ebx
jne 0x3001f08e
mov eax, dword [esp + 0x14]
add eax, 0x28
mov ecx, eax
and ecx, 0xfffff000
mov edi, dword [ecx]
push ebx
push eax
push eax
mov ecx, edi
call fcn.300184c0
push eax
mov ecx, edi
call fcn.3020a1b0
mov ecx, dword [esp + 0x6c]
call fcn.300bfd50
cmp dword [esi + 0x6cc], 1
mov edi, dword [esp + 0x14]
jne 0x3001bf55
cmp byte [edi + 0x3a], bl
jne 0x3001bf61
mov ecx, esi
call fcn.30019f70
cmp byte [edi + 0x3a], bl
jne 0x3001bf61
mov ecx, edi
call fcn.300be590
cmp byte [esp + 0xe0], bl
je 0x3001bf95
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0xd8]
mov ecx, dword [esp + 0xdc]
mov dword [eax + 0xbfc], edx
mov dword [eax + 0xc00], ecx
mov dword [eax + 0xc2c], 0xffffffff
mov edx, dword [esp + 0x6c]
cmp dword [edx + 4], ebx
jne 0x3001b9e3
jmp 0x3001f0c2
mov edi, dword [eax + 0x2c]
add eax, 0x2c
cmp edi, ebx
je 0x3001bea1
mov eax, dword [edi + 8]
cmp eax, ebx
je 0x3001c0ee
cmp dword [esi + 0x6cc], 1
jne 0x3001c0ee
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x60]
sub eax, edx
mov edx, dword [ecx]
add edx, eax
push ebx
mov ecx, esi
mov dword [esp + 0x38], eax
mov dword [esi + 0xc2c], edx
call fcn.300f8ec0
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x69c]
cmp eax, ebx
jbe 0x3001c017
mov ecx, dword [esi + 0x6a4]
dec eax
mov dword [esi + 0x69c], eax
lea eax, [ecx + eax*4]
mov ecx, dword [eax]
mov dword [eax], 2
mov eax, ecx
jmp 0x3001c01c
mov eax, 2
mov ecx, dword [edi + 0x1c]
cmp ecx, ebx
jl 0x3001c049
cmp ecx, dword [esp + 0xf4]
jge 0x3001c058
mov edx, dword [esp + 0x14]
cmp byte [edx + 0x3b], bl
jbe 0x3001c040
push eax
push ecx
mov ecx, edx
call fcn.3001a100
jmp 0x3001c058
mov dword [esp + ecx*4 + 0x328], eax
jmp 0x3001c058
mov ecx, dword [esp + 0xc]
push ebx
push eax
mov eax, dword [edi + 0x30]
push eax
call fcn.300edb30
mov ecx, dword [edi + 0xc]
mov eax, dword [esp + 0x14]
mov edx, dword [edi + 8]
push ecx
add eax, 0x28
mov eax, dword [eax]
push edx
push eax
mov eax, dword [esp + 0x18]
push eax
call fcn.300ebf60
mov edx, dword [esp + 0x24]
add edx, 0x28
add esp, 0x10
mov ecx, edx
push eax
and ecx, 0xfffff000
mov ecx, dword [ecx]
push edx
push edx
mov dword [esp + 0x28], ecx
call fcn.300184c0
mov ecx, dword [esp + 0x24]
push eax
call fcn.3020a1b0
cmp dword [edi + 0x10], ebx
je 0x3001c0b9
mov edx, dword [edi + 8]
mov eax, dword [edi + 0xc]
mov dword [edi], edx
mov dword [edi + 4], eax
mov dword [edi + 0xc], ebx
mov dword [edi + 8], ebx
jmp 0x3001c183
mov ecx, dword [edi + 0x18]
push ecx
lea ecx, [esi + 0x658]
call fcn.300181d0
mov edx, dword [edi + 0x2c]
mov ecx, dword [esp + 0x14]
push edx
add ecx, 0x2c
call fcn.3001a0d0
mov dword [edi + 0x30], ebx
push edi
and edi, 0xfffff000
mov ecx, dword [edi]
call fcn.302095c0
jmp 0x3001c183
cmp dword [edi + 0x20], ebx
jne 0x3001c189
cmp dword [edi + 0x10], ebx
je 0x3001c189
cmp dword [esi + 0x6cc], 2
jne 0x3001c129
lea eax, [esp + 0x280]
push eax
lea ecx, [esi + 0x658]
call fcn.30003450
mov ecx, dword [eax]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x280], ebx
mov eax, dword [edi + 0x10]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x60]
sub eax, ecx
mov ecx, dword [edx]
add ecx, eax
mov dword [esi + 0xc2c], ecx
mov dword [esp + 0x34], eax
mov edx, dword [edi + 0x18]
lea ecx, [esi + 0x658]
push edx
call fcn.300181d0
cmp dword [esi + 0x6cc], 2
jne 0x3001c16c
mov eax, dword [esp + 0x2c]
push eax
lea ecx, [esi + 0x658]
call fcn.30013c70
mov ecx, dword [esp + 0x14]
mov dword [edi + 0x20], 1
mov dword [edi + 0x28], ecx
mov edx, dword [esi + 0x6cc]
mov dword [edi + 0x24], edx
mov dword [esi + 0x6cc], ebx
mov edi, dword [esp + 0x14]
mov ecx, dword [edi + 0x28]
mov eax, dword [ecx + 0x10]
add edi, 0x28
cmp eax, ebx
mov dword [esp + 0x28], edi
je 0x3001c1d3
cmp dword [ecx + 0x14], ebx
je 0x3001c1d3
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
add eax, edx
push eax
call fcn.300e4680
push eax
mov ecx, edi
and ecx, 0xfffff000
mov ecx, dword [ecx]
push edi
push edi
mov dword [esp + 0x28], ecx
call fcn.300184c0
mov ecx, dword [esp + 0x24]
push eax
call fcn.3020a1b0
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov ecx, dword [ecx + 0x14]
add eax, edx
xor edi, edi
cmp ecx, ebx
je 0x3001c1f6
mov edi, dword [ecx + 0x2c]
cmp edi, ebx
je 0x3001c1f6
mov ecx, dword [edi + 4]
jmp 0x3001c1f8
mov ecx, edx
mov edx, dword [esp + 0x14]
sub eax, ecx
mov dword [esi + 0x740], eax
mov dword [edx + 0x40], eax
mov ecx, dword [esi + 0x7a4]
call fcn.30054dd0
cmp dword [esp + 0x27c], ebx
je 0x3001c27f
cmp edi, ebx
je 0x3001c27f
cmp eax, ebx
je 0x3001c27f
lea ecx, [esi + 0x28]
call fcn.3017e1e0
test eax, eax
je 0x3001c27f
lea ecx, [esi + 0x28]
call fcn.30098920
test eax, eax
jne 0x3001c27f
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 0x38]
jge 0x3001c283
mov ecx, dword [esp + 0x30]
cmp ecx, ebx
je 0x3001c283
cmp byte [eax + ecx], bl
je 0x3001c283
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x73c]
mov edx, dword [esi + 0x740]
push eax
push ecx
push edx
mov ecx, edi
call fcn.300f1520
test eax, eax
je 0x3001c27f
mov ecx, esi
call fcn.30018450
test eax, eax
je 0x3001f331
mov eax, dword [esp + 0x34]
cmp dword [esi + 0x6b0], ebx
jne 0x3001bea1
mov ecx, dword [esp + 0x38]
cmp ecx, 0xffffffff
je 0x3001c2a0
cmp eax, ecx
jge 0x3001bea1
mov ecx, dword [esp + 0x30]
mov cl, byte [eax + ecx]
inc eax
cmp cl, bl
mov byte [esp + 0x13], cl
mov dword [esp + 0x34], eax
je 0x3001bea1
mov edx, dword [esp + 0x6c]
mov ecx, dword [edx + 4]
mov edi, dword [ecx + 0x14]
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x3a], bl
mov dword [esp + 0xc], edi
jne 0x3001c31e
cmp edi, ebx
je 0x3001c31e
cmp edi, dword [ecx + 0x14]
je 0x3001c31e
push edi
lea ecx, [esp + 0x110]
call fcn.300ba250
mov edx, dword [esp + 0x10c]
mov eax, dword [esi + 0xc7c]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x18]
push 1
push edx
push eax
call fcn.300edb30
mov ecx, dword [esp + 0x14]
push edi
add ecx, 0x14
mov dword [esp + 0x110], ebx
call fcn.3001a0d0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
mov dl, byte [esp + 0x13]
xor edi, edi
test dl, dl
jns 0x3001c33f
mov edx, dword [esp + 0x30]
lea edi, [eax + edx]
add eax, 2
xor edx, edx
mov dword [esp + 0x34], eax
mov dh, byte [edi + 1]
mov dl, byte [edi]
mov edi, edx
mov edx, dword [esp + 0x8c]
add edi, eax
cmp edx, ebx
mov dword [esp + 0x20], edi
jle 0x3001c35f
mov eax, edx
dec eax
mov dword [esp + 0x8c], eax
jmp case.0x3001c390.22
cmp byte [ecx + 0x3e], bl
mov ecx, dword [esp + 0x14]
je 0x3001c36d
mov edi, dword [ecx + 0x10]
jmp 0x3001c371
mov edi, dword [esp + 0xc]
movzx edx, byte [esp + 0x13]
add edx, 0xfffffffc
cmp edx, 0x9b
mov dword [esp + 0x1c], edi
ja case.0x3001c390.22
movzx edx, byte [edx + 0x3001f4e8]
jmp dword [edx*4 + 0x3001f378]
cmp edi, ebx
je case.0x3001c390.22
mov ecx, dword [esp + 0x30]
add ecx, eax
xor edx, edx
add eax, 2
mov dword [esp + 0x34], eax
mov dh, byte [ecx + 1]
mov dl, byte [ecx]
mov ecx, edi
push edx
call fcn.300f14a0
jmp case.0x3001c390.22
cmp edi, ebx
je case.0x3001c390.22
mov ecx, dword [esp + 0x30]
push ebx
add eax, ecx
push ebx
push eax
mov ecx, edi
call fcn.300e39c0
cmp eax, ebx
jl case.0x3001c390.22
push eax
mov ecx, edi
call fcn.300f14a0
jmp case.0x3001c390.22
cmp edi, ebx
je case.0x3001c390.22
mov edx, dword [edi + 0x40]
inc edx
push edx
mov ecx, edi
call fcn.300f14a0
jmp case.0x3001c390.22
cmp edi, ebx
je case.0x3001c390.22
mov eax, dword [edi + 0x40]
dec eax
push eax
mov ecx, edi
call fcn.300f14a0
jmp case.0x3001c390.22
cmp edi, ebx
je case.0x3001c390.22
push 1
mov ecx, edi
call fcn.300f2e40
jmp case.0x3001c390.22
cmp edi, ebx
je case.0x3001c390.22
mov ecx, edi
call fcn.300ea940
jmp case.0x3001c390.22
cmp edi, ebx
je case.0x3001c390.22
mov ecx, dword [esp + 0x30]
add ecx, eax
add eax, 2
mov dword [esp + 0x34], eax
xor edx, edx
mov dh, byte [ecx + 1]
mov dl, byte [ecx]
mov ecx, dword [edi + 0x2c]
cmp dword [ecx + 0x1f0], edx
jge case.0x3001c390.22
mov edx, dword [esp + 0x30]
mov cl, byte [eax + edx]
inc eax
mov dword [esp + 0x34], eax
movzx eax, cl
mov dword [esp + 0x8c], eax
jmp case.0x3001c390.22
push edi
lea ecx, [esp + 0x34]
push ecx
mov ecx, esi
call fcn.30018960
jmp case.0x3001c390.22
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
push edx
push eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
call fcn.3001a270
jmp case.0x3001c390.22
mov edx, dword [esi + 0x80c]
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 8]
push esi
push edx
call fcn.300cdfd0
jmp case.0x3001c390.22
mov eax, dword [esi + 0x5e0]
xor ecx, ecx
cmp eax, 2
sete cl
push 2
mov dword [esi + 0x5e4], ebx
dec ecx
and ecx, 2
mov dword [esi + 0x5e0], ecx
mov ecx, esi
call fcn.3010b5e0
jmp case.0x3001c390.22
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
push edx
push eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
call fcn.3001b330
jmp case.0x3001c390.22
mov edx, dword [esp + 0x14]
push edx
mov ecx, esi
call fcn.3001b480
push ebx
push ebx
push 5
lea ecx, [esi + 0x28]
call fcn.30099fa0
jmp case.0x3001c390.22
mov ecx, esi
call fcn.30019c90
jmp case.0x3001c390.22
mov ecx, esi
call fcn.30019df0
jmp case.0x3001c390.22
mov edx, dword [esp + 0x30]
mov dl, byte [eax + edx]
inc eax
mov dword [esp + 0x34], eax
cmp dword [ecx + 0x44], ebx
mov byte [esp + 0x13], dl
je 0x3001c5f3
cmp dl, byte [ecx + 0x3b]
jae case.0x3001c390.22
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
cmp byte [eax + ecx], 0x17
jne 0x3001c5be
lea edx, [esp + 0x294]
push edx
lea ecx, [esi + 0x658]
call fcn.30003450
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
push eax
mov dword [esp + 0x30], eax
movzx eax, byte [esp + 0x17]
push eax
mov dword [esp + 0x29c], ebx
call fcn.3001a100
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
jmp case.0x3001c390.22
lea ecx, [esp + 0x318]
push ecx
lea ecx, [esi + 0x658]
call fcn.300186a0
mov eax, dword [eax]
movzx edx, byte [esp + 0x13]
mov ecx, dword [esp + 0x14]
push eax
push edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x320], ebx
call fcn.3001a100
jmp case.0x3001c390.22
cmp dl, 4
jae case.0x3001c390.22
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
cmp byte [eax + ecx], 0x17
lea ecx, [esi + 0x658]
jne 0x3001c640
lea edx, [esp + 0x320]
push edx
call fcn.30003450
mov edx, dword [eax]
mov eax, dword [esp + 0x20]
movzx ecx, byte [esp + 0x13]
inc eax
mov dword [esp + ecx*4 + 0x328], edx
mov dword [esp + 0x320], ebx
mov dword [esp + 0x20], eax
jmp case.0x3001c390.22
lea eax, [esp + 0x314]
push eax
call fcn.300186a0
movzx ecx, byte [esp + 0x13]
mov edx, dword [eax]
mov dword [esp + ecx*4 + 0x328], edx
mov dword [esp + 0x314], ebx
jmp case.0x3001c390.22
lea eax, [esp + 0x188]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
lea ecx, [esp + 0x2d0]
push ecx
mov ecx, edi
mov dword [esp + 0x20], eax
call fcn.30003450
mov edx, dword [esp + 0x1c]
push esi
mov dword [esp + 0x68], eax
mov eax, dword [edx]
push ebx
push eax
mov ecx, esi
call fcn.30005b80
fstp qword [esp + 0x5c]
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx]
push ebx
push edx
mov ecx, esi
call fcn.30005b80
fadd qword [esp + 0x5c]
sub esp, 8
lea ecx, [esp + 0x130]
fstp qword [esp]
call fcn.30018130
mov eax, dword [edi + 0x1c]
mov edx, dword [esp + 0x124]
mov ecx, dword [edi + 0x24]
mov dword [esp + 0x188], ebx
mov dword [esp + 0x2d0], ebx
mov dword [ecx + eax*4], edx
inc dword [edi + 0x1c]
mov dword [esp + 0x124], ebx
jmp case.0x3001c390.22
lea eax, [esp + 0x268]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
mov ecx, dword [eax]
push 1
push ecx
lea edx, [esp + 0x198]
push edx
mov ecx, esi
call fcn.3001a000
mov eax, dword [eax]
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], eax
inc dword [edi + 0x1c]
mov dword [esp + 0x190], ebx
mov dword [esp + 0x268], ebx
jmp case.0x3001c390.22
lea eax, [esp + 0x324]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
mov ecx, dword [eax]
push 0xffffffffffffffff
push ecx
lea edx, [esp + 0x1a0]
push edx
mov ecx, esi
call fcn.3001a000
mov eax, dword [eax]
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], eax
inc dword [edi + 0x1c]
mov dword [esp + 0x198], ebx
mov dword [esp + 0x324], ebx
jmp case.0x3001c390.22
lea eax, [esp + 0x1a0]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
mov ecx, dword [eax]
push ebx
push ecx
mov ecx, esi
call fcn.30005b80
fstp qword [esp + 0x58]
lea edx, [esp + 0x270]
push edx
mov ecx, edi
mov dword [esp + 0x1a4], ebx
call fcn.30003450
mov eax, dword [eax]
push ebx
push eax
mov ecx, esi
call fcn.30005b80
fsub qword [esp + 0x58]
sub esp, 8
lea ecx, [esp + 0x1b0]
fstp qword [esp]
push ecx
mov ecx, esi
mov dword [esp + 0x27c], ebx
call fcn.300fdc90
mov eax, dword [eax]
mov edx, dword [edi + 0x1c]
mov ecx, dword [edi + 0x24]
mov dword [ecx + edx*4], eax
inc dword [edi + 0x1c]
mov dword [esp + 0x1a8], ebx
jmp case.0x3001c390.22
lea edx, [esp + 0x1b0]
lea edi, [esi + 0x658]
push edx
mov ecx, edi
call fcn.30003450
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x278]
push eax
mov ecx, edi
call fcn.30003450
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
push ebx
push edx
mov ecx, esi
mov dword [esp + 0x6c], eax
call fcn.30005b80
fstp qword [esp + 0x58]
mov eax, dword [esp + 0x64]
mov ecx, dword [eax]
push ebx
push ecx
mov ecx, esi
call fcn.30005b80
fmul qword [esp + 0x58]
sub esp, 8
lea edx, [esp + 0x2e0]
fstp qword [esp]
push edx
mov ecx, esi
call fcn.300fdc90
mov eax, dword [eax]
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], eax
inc dword [edi + 0x1c]
mov dword [esp + 0x2d8], ebx
mov dword [esp + 0x1b0], ebx
mov dword [esp + 0x278], ebx
jmp case.0x3001c390.22
lea eax, [esp + 0x1b8]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
mov ecx, dword [eax]
push ebx
push ecx
mov ecx, esi
call fcn.30005b80
fstp qword [esp + 0x58]
fld qword [0x30293678]
mov dword [esp + 0x1b8], ebx
fld qword [esp + 0x58]
fucompp
fnstsw ax
test ah, 0x44
jp 0x3001c926
mov ecx, esi
call fcn.30018230
test eax, eax
je 0x3001c926
lea edx, [esp + 0x58]
push edx
mov ecx, edi
call fcn.30003450
mov eax, dword [esp + 0x24]
push eax
push 0x30294780
push esi
lea ecx, [esp + 0xf0]
call fcn.30018110
mov eax, dword [esp + 0xe4]
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], eax
inc dword [edi + 0x1c]
mov dword [esp + 0xe4], ebx
jmp case.0x3001c390.22
lea ecx, [esp + 0x1c0]
push ecx
mov ecx, edi
call fcn.30003450
mov edx, dword [eax]
push ebx
push edx
mov ecx, esi
call fcn.30005b80
fdiv qword [esp + 0x58]
sub esp, 8
lea eax, [esp + 0x314]
mov ecx, esi
fstp qword [esp]
push eax
call fcn.300fdc90
mov eax, dword [eax]
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], eax
inc dword [edi + 0x1c]
mov dword [esp + 0x30c], ebx
mov dword [esp + 0x1c0], ebx
jmp case.0x3001c390.22
lea eax, [esp + 0x180]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
mov ecx, dword [eax]
push ebx
push ecx
mov ecx, esi
call fcn.30005b80
fstp qword [esp + 0x58]
lea edx, [esp + 0x1c8]
push edx
mov ecx, edi
mov dword [esp + 0x184], ebx
call fcn.30003450
mov eax, dword [eax]
push ebx
push eax
mov ecx, esi
call fcn.30005b80
fld qword [esp + 0x58]
sub esp, 0x10
fstp qword [esp + 8]
mov dword [esp + 0x1d8], ebx
fstp qword [esp]
call fcn.30074760
add esp, 8
lea ecx, [esp + 0x2e8]
fstp qword [esp]
push ecx
mov ecx, esi
call fcn.300fdc90
mov eax, dword [eax]
mov edx, dword [edi + 0x1c]
mov ecx, dword [edi + 0x24]
mov dword [ecx + edx*4], eax
inc dword [edi + 0x1c]
mov dword [esp + 0x2e0], ebx
jmp case.0x3001c390.22
lea edx, [esp + 0x288]
lea edi, [esi + 0x658]
push edx
mov ecx, edi
call fcn.30003450
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x1d4]
push ecx
mov ecx, esi
call fcn.300ff600
mov eax, dword [eax]
mov edx, dword [edi + 0x1c]
mov ecx, dword [edi + 0x24]
mov dword [ecx + edx*4], eax
inc dword [edi + 0x1c]
mov dword [esp + 0x1d0], ebx
mov dword [esp + 0x288], ebx
jmp case.0x3001c390.22
lea edx, [esp + 0x1d8]
lea edi, [esi + 0x658]
push edx
mov ecx, edi
call fcn.30003450
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.30005bf0
lea ecx, [esp + 0x31c]
push ecx
mov ecx, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x1dc], ebx
call fcn.30003450
mov edx, dword [eax]
push edx
mov ecx, esi
call fcn.30005bf0
mov edx, dword [esp + 0x1c]
push esi
and eax, edx
push eax
lea ecx, [esp + 0x1e8]
mov dword [esp + 0x324], ebx
call fcn.30018150
mov eax, dword [eax]
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], eax
inc dword [edi + 0x1c]
mov dword [esp + 0x1e0], ebx
jmp case.0x3001c390.22
lea eax, [esp + 0x290]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.30005bf0
lea edx, [esp + 0x1e8]
push edx
mov ecx, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x294], ebx
call fcn.30003450
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.30005bf0
mov edx, dword [esp + 0x1c]
push esi
or eax, edx
push eax
lea ecx, [esp + 0x2f0]
mov dword [esp + 0x1f0], ebx
call fcn.30018150
mov eax, dword [eax]
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], eax
inc dword [edi + 0x1c]
mov dword [esp + 0x2e8], ebx
jmp case.0x3001c390.22
lea eax, [esp + 0x1f0]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.30005bf0
lea edx, [esp + 0x298]
push edx
mov ecx, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x1f4], ebx
call fcn.30003450
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.30005bf0
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
shl eax, cl
push esi
lea ecx, [esp + 0x1fc]
mov dword [esp + 0x29c], ebx
push eax
call fcn.30018150
mov eax, dword [eax]
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], eax
inc dword [edi + 0x1c]
mov dword [esp + 0x1f8], ebx
jmp case.0x3001c390.22
lea eax, [esp + 0x310]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.30005bf0
lea edx, [esp + 0x200]
push edx
mov ecx, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x314], ebx
call fcn.30003450
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.30005bf0
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
sar eax, cl
push esi
lea ecx, [esp + 0x2a4]
mov dword [esp + 0x204], ebx
push eax
call fcn.30018150
mov eax, dword [eax]
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], eax
inc dword [edi + 0x1c]
mov dword [esp + 0x2a0], ebx
jmp case.0x3001c390.22
lea eax, [esp + 0x208]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.30005bf0
lea edx, [esp + 0x2f0]
push edx
mov ecx, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x20c], ebx
call fcn.30003450
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.30005bf0
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
shr eax, cl
push esi
lea ecx, [esp + 0x214]
mov dword [esp + 0x2f4], ebx
push eax
call fcn.30018150
mov eax, dword [eax]
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], eax
inc dword [edi + 0x1c]
mov dword [esp + 0x210], ebx
jmp case.0x3001c390.22
lea eax, [esp + 0xc4]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
lea ecx, [esp + 0xc8]
push ecx
mov ecx, edi
call fcn.30003450
lea edx, [esp + 0xc8]
push edx
lea ecx, [esp + 0xc8]
call fcn.30018590
test al, al
je 0x3001cd1b
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc4]
push eax
push ecx
mov ecx, esi
call fcn.3010a870
mov dword [esp + 0x18], eax
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xc4], ebx
jmp 0x3001ec46
mov dword [esp + 0x18], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xc4], ebx
jmp 0x3001ec46
lea edx, [esp + 0x2a8]
lea edi, [esi + 0x658]
push edx
mov ecx, edi
call fcn.30003450
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.30005bf0
lea ecx, [esp + 0x218]
push ecx
mov ecx, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x2ac], ebx
call fcn.30003450
mov edx, dword [eax]
push edx
mov ecx, esi
call fcn.30005bf0
mov edx, dword [esp + 0x1c]
push esi
xor eax, edx
push eax
lea ecx, [esp + 0x304]
mov dword [esp + 0x220], ebx
call fcn.30018150
mov eax, dword [eax]
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], eax
inc dword [edi + 0x1c]
mov dword [esp + 0x2fc], ebx
jmp case.0x3001c390.22
lea eax, [esp + 0x74]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
lea ecx, [esp + 0x80]
push ecx
mov ecx, edi
call fcn.30003450
lea ecx, [esp + 0x74]
call fcn.30005af0
test al, al
je 0x3001ce3f
lea ecx, [esp + 0x80]
call fcn.30005af0
test al, al
je 0x3001ce3f
lea ecx, [esp + 0x80]
call fcn.30005a90
fstp qword [esp + 0x58]
lea ecx, [esp + 0x74]
call fcn.30005a90
fadd qword [esp + 0x58]
sub esp, 8
lea edx, [esp + 0x228]
fstp qword [esp]
push edx
mov ecx, esi
call fcn.300fdc90
mov eax, dword [eax]
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], eax
inc dword [edi + 0x1c]
mov dword [esp + 0x220], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x74], ebx
jmp case.0x3001c390.22
mov ecx, esi
call fcn.30018250
mov ecx, dword [esp + 0x74]
neg eax
sbb eax, eax
inc eax
push eax
lea eax, [esp + 0x30]
push eax
push ecx
mov ecx, esi
call fcn.30109190
test eax, eax
je 0x3001ce69
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x74], edx
mov ecx, esi
call fcn.30018250
mov ecx, dword [esp + 0x80]
neg eax
sbb eax, eax
inc eax
push eax
lea eax, [esp + 0x30]
push eax
push ecx
mov ecx, esi
call fcn.30109190
test eax, eax
je 0x3001ce99
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x80], edx
lea ecx, [esp + 0x74]
call fcn.30018610
test al, al
jne 0x3001cf13
lea ecx, [esp + 0x80]
call fcn.30018610
test al, al
jne 0x3001cf13
mov eax, dword [esp + 0x80]
push esi
push ebx
push eax
mov ecx, esi
call fcn.30005b80
fstp qword [esp + 0x5c]
mov ecx, dword [esp + 0x78]
push ebx
push ecx
mov ecx, esi
call fcn.30005b80
fadd qword [esp + 0x5c]
sub esp, 8
lea ecx, [esp + 0x2bc]
fstp qword [esp]
call fcn.30018130
mov eax, dword [eax]
mov edx, dword [edi + 0x1c]
mov ecx, dword [edi + 0x24]
mov dword [ecx + edx*4], eax
inc dword [edi + 0x1c]
mov dword [esp + 0x2b0], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x74], ebx
jmp case.0x3001c390.22
lea edx, [esp + 0x74]
push edx
lea eax, [esp + 0x22c]
push eax
mov ecx, esi
call fcn.30108ff0
lea ecx, [esp + 0x80]
push ecx
lea edx, [esp + 0xd0]
push edx
mov ecx, esi
call fcn.30108ff0
lea eax, [esp + 0x228]
push eax
lea ecx, [esp + 0xd0]
call fcn.300766f0
lea ecx, [esp + 0xcc]
push ecx
lea ecx, [esp + 0x160]
call fcn.300ba030
mov edx, dword [edi + 0x1c]
mov ecx, dword [esp + 0x15c]
mov eax, dword [edi + 0x24]
mov dword [eax + edx*4], ecx
inc dword [edi + 0x1c]
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x15c], ebx
mov ecx, dword [edx + 0x10]
mov eax, 0xffff
cmp ecx, eax
jbe 0x3001cf9a
mov word [esi + 0x6b4], ax
mov dword [esp + 0x80], ebx
mov dword [esp + 0x74], ebx
jmp case.0x3001c390.22
lea eax, [esp + 0x230]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
lea ecx, [esp + 0x2f8]
push ecx
mov ecx, edi
mov dword [esp + 0x20], eax
call fcn.30003450
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x64], eax
mov eax, dword [edx]
push ebx
push eax
mov ecx, esi
call fcn.30005b80
mov ecx, dword [esp + 0x64]
mov edx, dword [ecx]
sub esp, 8
fstp qword [esp]
push ebx
push edx
mov ecx, esi
call fcn.30005b80
sub esp, 8
fstp qword [esp]
call fcn.30074660
add esp, 0x10
mov dword [esp + 0x2f8], ebx
mov dword [esp + 0x230], ebx
jmp 0x3001ec42
lea eax, [esp + 0x238]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
mov ecx, dword [eax]
push ebx
push ecx
mov ecx, esi
call fcn.30005b80
sub esp, 8
lea edx, [esp + 0x2c0]
fstp qword [esp]
push edx
mov ecx, esi
call fcn.300fdc90
mov eax, dword [eax]
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], eax
inc dword [edi + 0x1c]
mov dword [esp + 0x2b8], ebx
mov dword [esp + 0x238], ebx
jmp case.0x3001c390.22
lea eax, [esp + 0x300]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
push eax
lea ecx, [esp + 0x244]
push ecx
mov ecx, esi
call fcn.30108ff0
lea edx, [esp + 0x240]
push edx
lea ecx, [esp + 0x168]
mov dword [esp + 0x304], ebx
call fcn.300ba030
mov eax, dword [edi + 0x1c]
mov edx, dword [esp + 0x164]
mov ecx, dword [edi + 0x24]
mov dword [ecx + eax*4], edx
inc dword [edi + 0x1c]
mov dword [esp + 0x164], ebx
jmp case.0x3001c390.22
lea eax, [esp + 0x2c0]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.300186a0
mov ecx, dword [eax]
push ecx
mov ecx, edi
call fcn.30013c70
mov dword [esp + 0x2c0], ebx
jmp case.0x3001c390.22
lea edx, [esp + 0x130]
lea edi, [esi + 0x658]
push edx
mov ecx, edi
call fcn.30003450
lea eax, [esp + 0x16c]
push eax
mov ecx, edi
call fcn.30003450
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov eax, dword [esp + 0x130]
mov dword [edx + ecx*4], eax
mov ecx, dword [edi + 0x1c]
mov eax, dword [esp + 0x16c]
inc ecx
mov dword [edi + 0x1c], ecx
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], eax
inc dword [edi + 0x1c]
mov dword [esp + 0x16c], ebx
mov dword [esp + 0x130], ebx
jmp case.0x3001c390.22
lea ecx, [esp + 0xa4]
lea edi, [esi + 0x658]
push ecx
mov ecx, edi
call fcn.30003450
lea edx, [esp + 0x9c]
push edx
mov ecx, edi
call fcn.30003450
mov ecx, esi
call fcn.30018250
test eax, eax
jne 0x3001d1d2
mov ecx, dword [esp + 0xa4]
push 1
lea eax, [esp + 0x30]
push eax
push ecx
mov ecx, esi
call fcn.30109190
test eax, eax
je 0x3001d1ad
mov edx, dword [esp + 0x2c]
mov dword [esp + 0xa4], edx
mov ecx, dword [esp + 0x9c]
push 1
lea eax, [esp + 0x30]
push eax
push ecx
mov ecx, esi
call fcn.30109190
test eax, eax
je 0x3001d1d2
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x9c], edx
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa4]
push eax
push ecx
mov ecx, esi
call fcn.3010a870
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa4], ebx
jmp 0x3001ec42
mov al, byte [esp + 0x13]
xor edx, edx
cmp al, 0x55
sete dl
mov ecx, esi
push edx
push edi
call fcn.3001b610
jmp case.0x3001c390.22
lea eax, [esp + 0x170]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
lea ecx, [esp + 0xf0]
push ecx
mov ecx, edi
call fcn.30003450
mov edx, dword [esp + 0xf0]
push ebx
push edx
mov ecx, esi
call fcn.30005b80
fstp qword [esp + 0x58]
mov eax, dword [esp + 0x170]
push ebx
push eax
mov ecx, esi
call fcn.30005b80
fcomp qword [esp + 0x58]
mov dword [esp + 0x18], 1
fnstsw ax
test ah, 0x41
je 0x3001d274
mov dword [esp + 0x18], ebx
mov dword [esp + 0xf0], ebx
mov dword [esp + 0x170], ebx
jmp 0x3001ec46
lea ecx, [esp + 0x138]
lea edi, [esi + 0x658]
push ecx
mov ecx, edi
call fcn.30003450
lea edx, [esp + 0xf8]
push edx
mov ecx, edi
call fcn.30003450
mov eax, dword [esp + 0x138]
mov ecx, dword [esp + 0xf8]
push eax
push ecx
mov ecx, esi
call fcn.3010a5d0
mov dword [esp + 0xf8], ebx
mov dword [esp + 0x138], ebx
jmp 0x3001ec42
lea edx, [esp + 0x158]
lea edi, [esi + 0x658]
push edx
mov ecx, edi
call fcn.30003450
lea eax, [esp + 0x100]
push eax
mov ecx, edi
call fcn.30003450
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x158]
push ecx
push edx
mov ecx, esi
call fcn.3010a5d0
mov dword [esp + 0x100], ebx
mov dword [esp + 0x158], ebx
jmp 0x3001ec42
lea eax, [esp + 0x140]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
lea ecx, [esp + 0x108]
push ecx
mov ecx, edi
call fcn.30003450
mov edx, dword [esp + 0x140]
push edx
mov ecx, esi
call fcn.3010ad20
test eax, eax
je 0x3001d375
mov eax, dword [esp + 0x108]
push eax
mov ecx, esi
call fcn.3010ad20
test eax, eax
mov dword [esp + 0x18], 1
jne 0x3001d379
mov dword [esp + 0x18], ebx
mov dword [esp + 0x108], ebx
mov dword [esp + 0x140], ebx
jmp 0x3001ec46
lea ecx, [esp + 0x168]
lea edi, [esi + 0x658]
push ecx
mov ecx, edi
call fcn.30003450
lea edx, [esp + 0x110]
push edx
mov ecx, edi
call fcn.30003450
mov eax, dword [esp + 0x168]
push eax
mov ecx, esi
call fcn.3010ad20
test eax, eax
jne 0x3001d3da
mov ecx, dword [esp + 0x110]
push ecx
mov ecx, esi
call fcn.3010ad20
test eax, eax
mov dword [esp + 0x18], ebx
je 0x3001d3e2
mov dword [esp + 0x18], 1
mov dword [esp + 0x110], ebx
mov dword [esp + 0x168], ebx
jmp 0x3001ec46
lea edx, [esp + 0x248]
lea edi, [esi + 0x658]
push edx
mov ecx, edi
mov dword [esp + 0x10], 2
call fcn.30003450
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.3010ad20
neg eax
sbb eax, eax
inc eax
push eax
lea ecx, [esp + 0x10]
call fcn.300b9fe0
mov ecx, dword [edi + 0x1c]
mov eax, dword [esp + 0xc]
mov edx, dword [edi + 0x24]
mov dword [esp + 0x248], ebx
mov dword [edx + ecx*4], eax
inc dword [edi + 0x1c]
jmp case.0x3001c390.22
lea ecx, [esp + 0x308]
lea edi, [esi + 0x658]
push ecx
mov ecx, edi
call fcn.30003450
mov edx, dword [eax]
push edx
mov ecx, esi
call fcn.30108d10
mov dword [esp + 0xc], eax
lea eax, [esp + 0x250]
push eax
mov ecx, edi
mov dword [esp + 0x30c], ebx
call fcn.30003450
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.30108d10
mov edx, dword [esp + 0x24]
push edx
push eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
push eax
mov dword [esp + 0x25c], ebx
call fcn.300f6930
mov ecx, dword [esp + 0x18]
neg eax
sbb eax, eax
inc eax
push ecx
mov dword [esp + 0x28], eax
call fcn.30208320
mov edx, dword [esp + 0x2c]
push edx
call fcn.30208320
add esp, 0x14
jmp 0x3001ec46
lea eax, [esp + 0x2c8]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.30108d10
lea edx, [esp + 0x258]
push edx
mov ecx, edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x2cc], ebx
call fcn.30003450
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.30108d10
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
push ecx
push edx
push eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x264], ebx
call fcn.300f6930
mov edx, dword [esp + 0x18]
xor ecx, ecx
test eax, eax
setl cl
push edx
mov dword [esp + 0x28], ecx
call fcn.30208320
mov eax, dword [esp + 0x2c]
push eax
call fcn.30208320
add esp, 0x14
jmp 0x3001ec46
lea ecx, [esp + 0x304]
lea edi, [esi + 0x658]
push ecx
mov ecx, edi
call fcn.30003450
mov edx, dword [eax]
push edx
mov ecx, esi
call fcn.30108d10
mov dword [esp + 0xc], eax
lea eax, [esp + 0x260]
push eax
mov ecx, edi
mov dword [esp + 0x308], ebx
call fcn.30003450
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.30108d10
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
push edx
push ecx
push eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x26c], ebx
call fcn.300f6930
xor edx, edx
test eax, eax
mov eax, dword [esp + 0x18]
setg dl
push eax
mov dword [esp + 0x28], edx
call fcn.30208320
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.30208320
add esp, 0x14
jmp 0x3001ec46
lea edx, [esp + 0x7c]
lea edi, [esi + 0x658]
push edx
mov ecx, edi
call fcn.30003450
cmp dword [esp + 0x24], 5
jle 0x3001d668
lea ecx, [esp + 0x7c]
call fcn.30018610
test al, al
jne 0x3001d616
lea ecx, [esp + 0x7c]
call fcn.30018650
test al, al
je 0x3001d668
lea ecx, [esp + 0x7c]
call fcn.30007f30
cmp byte [eax + 0x2d], 6
jne 0x3001d668
lea ecx, [esp + 0x7c]
call fcn.30018610
test al, al
lea ecx, [esp + 0x7c]
je 0x3001d62e
call fcn.30007f30
jmp 0x3001d639
call fcn.30007f30
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x24]
mov eax, dword [eax + 0x10]
push esi
push eax
lea ecx, [esp + 0x18c]
call fcn.30018150
mov eax, dword [eax]
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], eax
inc dword [edi + 0x1c]
mov dword [esp + 0x184], ebx
mov dword [esp + 0x7c], ebx
jmp case.0x3001c390.22
mov eax, dword [esp + 0x7c]
push eax
mov ecx, esi
call fcn.30108d10
cmp dword [esp + 0x24], 5
mov dword [esp + 0x1c], eax
jle 0x3001d682
push ebx
jmp 0x3001d68f
mov cl, byte [esp + 0x13]
xor edx, edx
cmp cl, 0x31
sete dl
push edx
mov ecx, dword [esp + 0x28]
push ecx
push eax
call fcn.300f68a0
add esp, 0xc
push esi
push eax
lea ecx, [esp + 0x194]
call fcn.30018150
mov eax, dword [eax]
mov edx, dword [edi + 0x1c]
mov ecx, dword [edi + 0x24]
mov dword [ecx + edx*4], eax
inc dword [edi + 0x1c]
mov edx, dword [esp + 0x1c]
push edx
mov dword [esp + 0x190], ebx
call fcn.30208320
add esp, 4
mov dword [esp + 0x7c], ebx
jmp case.0x3001c390.22
lea eax, [esp + 0x194]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.30108d10
lea edx, [esp + 0x19c]
push edx
mov ecx, edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x198], ebx
call fcn.30003450
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.30108d10
mov ecx, dword [esp + 0xc]
push ecx
push eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x1a4], ebx
call fcn.30075290
mov edx, dword [esp + 0x2c]
add esp, 8
push edx
push eax
push esi
lea ecx, [esp + 0x1b0]
mov dword [esp + 0x28], eax
call fcn.30018110
mov eax, dword [eax]
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], eax
mov edx, dword [edi + 0x1c]
mov eax, dword [esp + 0x1c]
inc edx
push eax
mov dword [edi + 0x1c], edx
mov dword [esp + 0x1a8], ebx
call fcn.30208320
mov ecx, dword [esp + 0x10]
push ecx
call fcn.30208320
mov edx, dword [esp + 0x6c]
push edx
call fcn.30208320
add esp, 0xc
jmp case.0x3001c390.22
push esi
call fcn.300180f0
fsub qword [esi + 0x788]
sub esp, 8
lea ecx, [esp + 0x1b8]
fstp qword [esp]
call fcn.30018130
mov eax, dword [eax]
push eax
lea ecx, [esi + 0x658]
call fcn.30013c70
mov dword [esp + 0x1ac], ebx
jmp case.0x3001c390.22
lea ecx, [esp + 0x1b4]
lea edi, [esi + 0x658]
push ecx
mov ecx, edi
call fcn.30003450
mov edx, dword [eax]
push ebx
push edx
mov ecx, esi
call fcn.30005b80
fcom qword [0x30294778]
mov dword [esp + 0x1b4], ebx
fnstsw ax
test ah, 0x41
jne 0x3001d7fc
fstp st(0)
fld qword [0x30294778]
mov eax, dword [esi + 0x1c]
add eax, 0x414
push eax
call fcn.3002ddb0
push eax
call fcn.300748d0
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
lea eax, [esp + 0x1c4]
mov ecx, esi
fstp qword [esp]
push eax
call fcn.300fdc90
mov eax, dword [eax]
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], eax
inc dword [edi + 0x1c]
mov dword [esp + 0x1bc], ebx
jmp case.0x3001c390.22
lea eax, [esp + 0x1c4]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.30005bf0
lea edx, [esp + 0x1cc]
push edx
mov ecx, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x1c8], ebx
call fcn.30003450
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.30005bf0
lea ecx, [esp + 0x70]
mov edi, eax
push ecx
lea ecx, [esi + 0x658]
dec edi
mov dword [esp + 0x1d0], ebx
call fcn.30003450
cmp dword [esp + 0x24], 5
jle 0x3001d982
lea ecx, [esp + 0x70]
call fcn.30018610
test al, al
jne 0x3001d8dd
lea ecx, [esp + 0x70]
call fcn.30018650
test al, al
je 0x3001d982
lea ecx, [esp + 0x70]
call fcn.30007f30
cmp byte [eax + 0x2d], 6
jne 0x3001d982
lea ecx, [esp + 0x70]
call fcn.30018610
test al, al
lea ecx, [esp + 0x70]
je 0x3001d8f5
call fcn.30007f30
jmp 0x3001d900
call fcn.30007f30
mov edx, dword [eax + 0x54]
mov eax, dword [edx + 0x24]
cmp edi, ebx
mov ecx, dword [eax + 0x10]
jge 0x3001d90b
xor edi, edi
jmp 0x3001d911
cmp edi, ecx
jle 0x3001d911
mov edi, ecx
cmp dword [esp + 0x18], ebx
jl 0x3001d921
mov edx, ecx
sub edx, edi
cmp dword [esp + 0x18], edx
jle 0x3001d927
sub ecx, edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x18]
lea ecx, [edi + eax]
push ecx
push edi
lea edx, [esp + 0x1e4]
push edx
lea ecx, [esp + 0x1e0]
call fcn.30076760
lea eax, [esp + 0x1dc]
push eax
lea ecx, [esp + 0x11c]
call fcn.300ba030
mov ecx, dword [esp + 0x118]
push ecx
lea ecx, [esi + 0x658]
call fcn.30013c70
mov dword [esp + 0x118], ebx
mov dword [esp + 0x70], ebx
jmp case.0x3001c390.22
mov edx, dword [esp + 0x70]
push edx
mov ecx, esi
call fcn.30108d10
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
cmp eax, 5
jle 0x3001d9aa
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
push ebx
push eax
push ecx
push edi
push edx
jmp 0x3001d9c7
mov dl, byte [esp + 0x13]
mov ecx, dword [esp + 0x24]
xor eax, eax
cmp dl, 0x35
mov edx, dword [esp + 0x18]
sete al
push eax
mov eax, dword [esp + 0x10]
push ecx
push edx
push edi
push eax
call fcn.300f6ab0
mov ecx, dword [esp + 0x38]
add esp, 0x14
push ecx
mov edi, eax
push edi
push esi
lea ecx, [esp + 0x1f0]
call fcn.30018110
mov eax, dword [eax]
mov edx, dword [esi + 0x674]
mov ecx, dword [esi + 0x67c]
mov dword [ecx + edx*4], eax
mov ecx, dword [esi + 0x674]
inc ecx
push edi
mov dword [esi + 0x674], ecx
mov dword [esp + 0x1e8], ebx
call fcn.30208320
mov edx, dword [esp + 0x10]
push edx
call fcn.30208320
add esp, 8
mov dword [esp + 0x70], ebx
jmp case.0x3001c390.22
cmp eax, dword [esp + 0x20]
jge case.0x3001c390.22
jmp 0x3001da35
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
mov dl, byte [eax + edx]
movzx edx, dl
inc eax
cmp edx, 9
mov dword [esp + 0x34], eax
ja case.default.0x3001da4d
jmp dword [edx*4 + 0x3001f584]
lea ecx, [esp + 0x30]
call fcn.300dfe10
mov ecx, dword [esp + 0x24]
push ecx
push eax
push esi
lea ecx, [esp + 0x370]
call fcn.30076050
push eax
lea ecx, [esp + 0x14c]
call fcn.300ba030
mov edx, dword [esp + 0x148]
push edx
lea ecx, [esi + 0x658]
call fcn.30013c70
mov dword [esp + 0x148], ebx
jmp 0x3001dc65
lea ecx, [esp + 0x30]
call fcn.30018200
mov dword [esp + 0x1c], eax
fld dword [esp + 0x1c]
sub esp, 8
lea eax, [esp + 0x1f4]
fstp qword [esp]
push eax
mov ecx, esi
call fcn.300fdc90
mov ecx, dword [eax]
push ecx
lea ecx, [esi + 0x658]
call fcn.30013c70
mov dword [esp + 0x1ec], ebx
jmp 0x3001dc65
push esi
lea ecx, [esp + 0x34]
call fcn.30018200
push eax
lea ecx, [esp + 0x1fc]
call fcn.30018150
mov edx, dword [eax]
push edx
lea ecx, [esi + 0x658]
call fcn.30013c70
mov dword [esp + 0x1f4], ebx
jmp 0x3001dc65
lea ecx, [esp + 0x30]
call fcn.30018200
lea ecx, [esp + 0x30]
mov dword [esp + 0x33c], eax
call fcn.30018200
mov dword [esp + 0x338], eax
fld qword [esp + 0x338]
sub esp, 8
lea eax, [esp + 0x204]
fstp qword [esp]
push eax
mov ecx, esi
call fcn.300fdc90
mov ecx, dword [eax]
push ecx
lea ecx, [esi + 0x658]
call fcn.30013c70
mov dword [esp + 0x1fc], ebx
jmp 0x3001dc65
mov edx, dword [esp + 0x30]
mov dword [esp + 0xc], 2
mov cl, byte [eax + edx]
inc eax
mov dword [esp + 0x34], eax
movzx eax, cl
push eax
lea ecx, [esp + 0x10]
call fcn.300b9fe0
mov ecx, dword [esp + 0xc]
push ecx
jmp 0x3001dc5a
mov eax, 0xa
push eax
jmp 0x3001dc5a
mov edi, dword [ecx + 0x44]
cmp edi, ebx
je 0x3001dbce
mov edx, dword [esp + 0x30]
mov dl, byte [eax + edx]
inc eax
mov dword [esp + 0x34], eax
cmp dl, byte [ecx + 0x3b]
lea ecx, [esi + 0x658]
jae 0x3001dbc3
movzx eax, dl
mov eax, dword [edi + eax*4]
push eax
jmp 0x3001dc60
mov eax, 2
push eax
jmp 0x3001dc60
mov ecx, dword [esp + 0x30]
mov cl, byte [eax + ecx]
inc eax
cmp cl, 4
mov dword [esp + 0x34], eax
jae case.0x3001da4d.3
movzx edx, cl
mov eax, dword [esp + edx*4 + 0x328]
push eax
jmp 0x3001dc5a
mov eax, 2
push eax
jmp 0x3001dc5a
mov ecx, dword [ecx + 0x1c]
cmp ecx, ebx
je case.default.0x3001da4d
mov edx, dword [esp + 0x30]
mov dl, byte [eax + edx]
inc eax
mov dword [esp + 0x34], eax
lea eax, [esp + 0xc]
movzx edx, dl
push eax
push edx
mov dword [esp + 0x14], 2
call fcn.300186f0
mov eax, dword [esp + 0xc]
push eax
jmp 0x3001dc5a
mov edi, dword [ecx + 0x1c]
cmp edi, ebx
je case.default.0x3001da4d
mov ecx, dword [esp + 0x30]
lea edx, [eax + ecx]
xor ecx, ecx
add eax, 2
mov dword [esp + 0x34], eax
mov ch, byte [edx + 1]
lea eax, [esp + 0xc]
push eax
mov dword [esp + 0x10], 2
mov cl, byte [edx]
push ecx
mov ecx, edi
call fcn.300186f0
mov edx, dword [esp + 0xc]
push edx
lea ecx, [esi + 0x658]
call fcn.30013c70
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 0x20]
jl 0x3001da31
jmp case.0x3001c390.22
lea ecx, [esi + 0x658]
call fcn.300181b0
jmp case.0x3001c390.22
lea eax, [esp + 0x20c]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
mov ecx, dword [eax]
push esi
push ecx
mov ecx, esi
call fcn.30005bf0
push eax
lea ecx, [esp + 0x20c]
call fcn.30018150
mov edx, dword [eax]
push edx
mov ecx, edi
call fcn.30013c70
mov dword [esp + 0x204], ebx
mov dword [esp + 0x20c], ebx
jmp case.0x3001c390.22
inc eax
mov dword [esp + 0x34], eax
jmp case.0x3001c390.22
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx + 0x14]
xor edi, edi
cmp ecx, ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x28], ebx
je 0x3001dd60
mov ecx, dword [ecx + 0x2c]
cmp ecx, ebx
mov dword [esp + 0x28], ecx
je 0x3001dd60
mov edx, dword [esp + 0x30]
lea edi, [eax + edx]
mov edx, ecx
mov ecx, dword [edx + 4]
cmp edi, ecx
jb 0x3001de02
mov edx, dword [edx + 0x1d0]
add edx, ecx
cmp edi, edx
jae 0x3001de02
push edi
lea eax, [esp + 0x218]
push eax
mov ecx, esi
call fcn.301011c0
mov edx, dword [eax]
push 1
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x30]
push edx
add ecx, 0x290
call fcn.300ec0e0
mov eax, dword [esp + 0x18]
cmp eax, ebx
mov dword [esp + 0x214], ebx
jne 0x3001dde5
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x34]
sub edx, eax
push edx
add eax, ecx
push eax
push esi
push 8
call fcn.300e44b0
add esp, 0x14
cmp eax, ebx
je 0x3001de09
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
push esi
push edx
mov edx, dword [esp + 0x28]
sub edx, ecx
push edx
mov edx, dword [esp + 0x3c]
add ecx, edx
push ecx
mov ecx, eax
call fcn.300ebc40
cmp eax, ebx
mov dword [esp + 0x18], eax
je 0x3001dde5
cmp edi, ebx
je 0x3001dde5
push edi
lea eax, [esp + 0x220]
push eax
mov ecx, esi
call fcn.301011c0
mov ecx, dword [esp + 0x18]
mov edx, dword [eax]
push 1
push ecx
mov ecx, dword [esp + 0x30]
push edx
add ecx, 0x290
call fcn.300eab50
mov eax, dword [esp + 0x18]
mov dword [esp + 0x21c], ebx
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x1c]
add ecx, 0x1c
cmp eax, edx
je case.0x3001c390.22
push eax
call fcn.3001a0d0
jmp case.0x3001c390.22
xor edi, edi
jmp 0x3001dd60
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x3001dde5
mov ecx, dword [esp + 0x30]
add ecx, eax
add eax, 2
xor edx, edx
mov dword [esp + 0x34], eax
mov dh, byte [ecx + 1]
lea eax, [esp + 0x224]
push eax
mov dl, byte [ecx]
lea ecx, [esi + 0x658]
mov edi, edx
call fcn.30003450
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.3010ad20
cmp eax, ebx
mov dword [esp + 0x224], ebx
je case.0x3001c390.22
mov eax, dword [esp + 0x20]
movsx edx, di
add eax, edx
mov dword [esp + 0x20], eax
jmp case.0x3001c390.22
mov ecx, dword [esp + 0x30]
add ecx, eax
add eax, 2
mov dword [esp + 0x34], eax
xor edx, edx
mov dh, byte [ecx + 1]
movzx ecx, byte [ecx]
movsx eax, dx
or eax, ecx
add dword [esp + 0x20], eax
jmp case.0x3001c390.22
mov edx, dword [esi + 0x548]
cmp edx, dword [esi + 0xbe0]
jl 0x3001dea2
mov ecx, esi
call fcn.300f9500
jmp case.0x3001c390.22
mov eax, dword [esi + 0x20]
push ebx
push eax
push 0x48
call fcn.30208150
add esp, 0xc
cmp eax, ebx
je case.0x3001c390.22
push esi
mov ecx, eax
call fcn.300bca30
cmp eax, ebx
mov dword [esp + 0xc], eax
je case.0x3001c390.22
lea eax, [esp + 0x22c]
push eax
lea ecx, [esi + 0x658]
call fcn.30003450
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.30108d10
lea edx, [esp + 0x120]
push edx
push edi
push eax
mov ecx, esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x238], ebx
call fcn.30106120
mov edi, eax
mov eax, dword [esp + 0x1c]
push eax
call fcn.30208320
add esp, 4
cmp edi, ebx
je 0x3001e0c8
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x20]
mov ecx, dword [ecx + 4]
push edx
mov dword [esp + 0x20], ecx
call fcn.300bb1a0
lea ecx, [esp + 0x340]
call fcn.30004870
mov eax, dword [edi + 0x2c]
mov ecx, dword [eax + 0x1d0]
mov edx, dword [edi + 0x34]
mov eax, dword [edi + 4]
push ecx
push edx
push eax
lea ecx, [esp + 0x34c]
call fcn.300dfc60
cmp dword [esp + 0x120], ebx
mov ecx, dword [edi + 0x38]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x28], ecx
je 0x3001dfd1
mov edx, ecx
push edx
lea ecx, [esp + 0x344]
call fcn.300dfc90
cmp eax, 0xffffffff
je 0x3001dfd1
cmp eax, 0xfffffffe
je 0x3001dfc8
cmp eax, 1
mov ecx, dword [esp + 0x350]
mov dword [esp + 0x344], ecx
jne 0x3001dfb0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x120]
inc eax
cmp eax, ecx
mov dword [esp + 0x54], eax
je 0x3001dfd1
mov edx, dword [esp + 0x28]
push edx
lea ecx, [esp + 0x344]
call fcn.300dfc90
cmp eax, 0xffffffff
jne 0x3001df84
jmp 0x3001dfd1
push 1
mov ecx, esi
call fcn.300f8ab0
mov eax, dword [esi + 0x20]
push ebx
push eax
push 0x10
call fcn.30208150
add esp, 0xc
cmp eax, ebx
je 0x3001e0b9
mov ecx, eax
call fcn.300bc330
cmp eax, ebx
mov dword [esp + 0x54], eax
je 0x3001e0b9
mov eax, dword [esp + 0x28]
push eax
lea ecx, [esp + 0x344]
call fcn.300dfc90
cmp eax, 0xffffffff
je 0x3001e07f
cmp eax, 0xfffffffe
je 0x3001e076
cmp eax, 0xc
jne 0x3001e04b
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov eax, dword [esp + 0x344]
mov ecx, dword [esp + 0x340]
push SysReAllocString
push ebx
push ebx
push 0xffffffffffffffff
push edi
add edx, eax
push edx
add eax, ecx
mov ecx, dword [esp + 0x6c]
push eax
push esi
call fcn.300be3e0
jmp 0x3001e050
cmp eax, 1
je 0x3001e07f
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x350]
push eax
lea ecx, [esp + 0x344]
mov dword [esp + 0x348], edx
call fcn.300dfc90
cmp eax, 0xffffffff
jne 0x3001e011
jmp 0x3001e07f
push 1
mov ecx, esi
call fcn.300f8ab0
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0xc]
push ecx
lea ecx, [edi + 0xc]
call fcn.3001a0d0
push edi
lea ecx, [esi + 0x144]
call fcn.300bb1e0
inc dword [esi + 0x73c]
mov dword [esp + 0x84], 1
mov byte [edi + 0x3f], 1
mov dword [edi + 0x40], ebx
jmp case.0x3001c390.22
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx]
push 1
call dword [edx]
jmp case.0x3001c390.22
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x3001c390.22
lea ecx, [esp + 0x234]
lea edi, [esi + 0x658]
push ecx
mov ecx, edi
call fcn.30003450
mov edx, dword [eax]
push ebx
push edx
mov ecx, esi
call fcn.30005b80
call fcn.3002ddb0
cmp eax, ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x234], ebx
mov dword [esp + 0x28], ebx
jl 0x3001e22d
cmp byte [esp + 0x13], 0x43
mov eax, dword [esp + 0x18]
mov ecx, esi
jne 0x3001e1bf
add eax, 2
push eax
call fcn.300f8ec0
mov ecx, dword [esi + 0xc84]
push ebx
push ecx
push eax
mov ecx, esi
mov dword [esp + 0x34], eax
call fcn.300ff500
mov eax, dword [esp + 0x18]
cmp eax, ebx
jle 0x3001e22d
mov edx, eax
mov dword [esp + 0xc], edx
lea eax, [esp + 0x128]
push eax
mov ecx, edi
call fcn.30003450
lea ecx, [esp + 0x160]
push ecx
mov ecx, edi
call fcn.30003450
mov edx, dword [esp + 0x160]
push edx
lea eax, [esp + 0x240]
push eax
mov ecx, esi
call fcn.30018860
mov ecx, dword [esp + 0x128]
mov edx, dword [eax]
push ebx
push ecx
mov ecx, dword [esp + 0x30]
push edx
call fcn.300edb30
mov eax, dword [esp + 0xc]
dec eax
mov dword [esp + 0x23c], ebx
mov dword [esp + 0x160], ebx
mov dword [esp + 0x128], ebx
mov dword [esp + 0xc], eax
jne 0x3001e153
jmp 0x3001e22d
push eax
call fcn.301023d0
mov dword [esp + 0x28], eax
cmp dword [esp + 0x18], ebx
mov dword [esp + 0xc], ebx
jle 0x3001e22d
lea ecx, [esp + 0x24c]
push ecx
mov ecx, edi
call fcn.30003450
mov edx, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
push edx
lea eax, [esp + 0x248]
push eax
mov ecx, esi
call fcn.301011c0
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov eax, dword [eax]
mov ecx, dword [esp + 0x28]
push ebx
push edx
push eax
call fcn.300edb30
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
inc eax
cmp eax, ecx
mov dword [esp + 0x244], ebx
mov dword [esp + 0x24c], ebx
mov dword [esp + 0xc], eax
jl 0x3001e1d3
mov ecx, dword [esp + 0x28]
push ecx
lea ecx, [esp + 0x154]
call fcn.300ba270
mov edx, dword [edi + 0x1c]
mov eax, dword [edi + 0x24]
mov ecx, dword [esp + 0x150]
mov dword [eax + edx*4], ecx
inc dword [edi + 0x1c]
mov dword [esp + 0x150], ebx
jmp case.0x3001c390.22
lea edx, [esp + 0x254]
lea ecx, [esi + 0x658]
push edx
call fcn.30003450
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xec]
push ecx
mov ecx, esi
call fcn.30018860
lea edx, [esp + 0x25c]
push edx
lea ecx, [esi + 0x658]
mov dword [esp + 0x258], ebx
call fcn.30003450
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.30005bf0
mov dl, byte [esp + 0x13]
xor ecx, ecx
push ebx
cmp dl, 0x40
mov edx, dword [esp + 0xec]
push 1
sete cl
push ebx
mov dword [esp + 0x268], ebx
push ecx
push eax
push edx
push edi
push ebx
mov ecx, esi
call fcn.30107cb0
cmp eax, ebx
mov dword [esp + 0x84], eax
je 0x3001e30b
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x6c]
mov ecx, dword [ecx + 4]
push eax
call fcn.300bb1a0
inc dword [esi + 0x73c]
mov eax, dword [esi + 0x54c]
mov byte [eax + 0x3f], 1
mov dword [eax + 0x40], ebx
mov dword [esp + 0xe8], ebx
jmp case.0x3001c390.22
mov edx, dword [esp + 0x60]
cmp dword [edx + 0xc], ebx
jne 0x3001e31f
mov dword [esp + 0x90], 1
mov dword [esp + 0xe8], ebx
jmp case.0x3001c390.22
mov ecx, dword [esp + 0x30]
add ecx, eax
add eax, 2
xor edx, edx
mov dword [esp + 0x34], eax
mov dh, byte [ecx + 1]
lea eax, [esp + 0x264]
push eax
mov dl, byte [ecx]
lea ecx, [esi + 0x658]
mov dword [esp + 0x10], edx
call fcn.30003450
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.30105020
mov edi, eax
cmp edi, ebx
mov dword [esp + 0x264], ebx
je 0x3001e3b5
mov edx, dword [esp + 0x28]
cmp dword [edx], ebx
je 0x3001e3b5
mov eax, edx
mov ecx, dword [eax]
call fcn.300186d0
test al, al
jne 0x3001e3b5
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x20]
lea eax, [edx + ecx]
movzx ecx, word [esp + 0xc]
mov edx, dword [esp + 0x28]
add ecx, eax
push ecx
push eax
mov eax, dword [edx]
push eax
push edi
call fcn.300ebf60
mov ecx, dword [esp + 0x38]
add esp, 0x10
push eax
call fcn.300d6cf0
jmp case.0x3001c390.22
cmp dword [esi + 0x794], ebx
jne 0x3001e3d2
mov ecx, esi
call fcn.300067a0
movzx eax, word [esp + 0xc]
add dword [esp + 0x20], eax
jmp case.0x3001c390.22
push ebx
push ebx
push 2
lea ecx, [esi + 0x28]
call fcn.30099fa0
movzx eax, word [esp + 0xc]
add dword [esp + 0x20], eax
jmp case.0x3001c390.22
lea edx, [esp + 0xb4]
lea ecx, [esi + 0x658]
push edx
call fcn.30003450
lea eax, [esp + 0x26c]
push eax
lea ecx, [esi + 0x658]
call fcn.30003450
mov ecx, dword [eax]
push ecx
lea edx, [esp + 0xb0]
push edx
mov ecx, esi
call fcn.30018860
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x26c], ebx
call fcn.30018680
test eax, eax
je 0x3001e472
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x3d], bl
je 0x3001e472
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x3001e498
mov eax, dword [esp + 0xb4]
mov edx, dword [esp + 0xac]
push 2
push eax
push edx
call fcn.300edb30
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb4], ebx
jmp case.0x3001c390.22
push 1
push edi
mov ecx, esi
call fcn.300187b0
test eax, eax
je 0x3001e498
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xac]
push eax
push ecx
push edi
mov ecx, esi
call fcn.3010d7f0
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb4], ebx
jmp case.0x3001c390.22
lea edx, [esp + 0x274]
push edx
lea ecx, [esi + 0x658]
call fcn.30003450
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x98]
push ecx
mov ecx, esi
call fcn.30018860
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x274], ebx
mov dword [esp + 0xec], 2
call fcn.30018680
test eax, eax
je 0x3001e544
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x3d], bl
je 0x3001e544
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x3001e588
mov edx, dword [esp + 0x94]
push edx
call fcn.300eb410
test eax, eax
jne 0x3001e588
mov eax, dword [esi + 0xc3c]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x14]
push 2
push eax
push ecx
mov ecx, dword [edx + 0x18]
call fcn.300edb30
mov dword [esp + 0xec], ebx
mov dword [esp + 0x94], ebx
jmp case.0x3001c390.22
push 1
push edi
mov ecx, esi
call fcn.300187b0
test eax, eax
je 0x3001e588
mov ecx, dword [esp + 0x94]
push 1
push ebx
lea eax, [esp + 0xf4]
push eax
push ecx
push edi
mov ecx, esi
call fcn.30107ab0
test eax, eax
jne 0x3001e588
mov edx, dword [esi + 0xc3c]
mov eax, dword [esp + 0x94]
push edx
push eax
push edi
mov ecx, esi
call fcn.3010d7f0
mov dword [esp + 0xec], ebx
mov dword [esp + 0x94], ebx
jmp case.0x3001c390.22
lea eax, [ecx + 0x2c]
mov eax, dword [eax]
cmp eax, ebx
mov edx, 1
mov dword [esp + 0x68], edx
je 0x3001e5c5
cmp dword [eax + 0x20], ebx
jne 0x3001e5d1
mov dword [esp + 0x68], ebx
mov dword [esi + 0x6cc], 2
jmp case.0x3001c390.22
cmp dword [esi + 0x6cc], edx
jne case.0x3001c390.22
lea ecx, [esp + 0x58]
push ecx
mov ecx, esi
call fcn.30018720
mov dword [esi + 0x6cc], ebx
jmp case.0x3001c390.22
cmp byte [esp + 0x13], 0x8e
lea ecx, [esp + 0x30]
sete byte [esp + 0xb0]
call fcn.300dfe10
mov ecx, dword [esp + 0x34]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x38]
cmp eax, 0xffffffff
mov dword [esp + 0x64], ecx
je 0x3001e628
lea edx, [ecx + 2]
cmp edx, eax
jle 0x3001e628
push 1
mov ecx, esi
call fcn.300f8ab0
jmp case.0x3001c390.22
mov eax, dword [esp + 0x30]
add eax, ecx
add ecx, 2
mov dword [esp + 0x34], ecx
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax]
mov dword [esp + 0x174], ebx
mov dword [esp + 0x178], ebx
mov dword [esp + 0x17c], ebx
mov edi, ecx
cmp di, bx
mov dword [esp + 0xd0], edi
jbe 0x3001e685
push 0x10
call fcn.3007a1f0
add esp, 4
cmp eax, ebx
je 0x3001e685
mov ecx, dword [esi + 0x740]
movzx edx, di
push edx
push ecx
mov ecx, eax
call fcn.300982e0
mov dword [esp + 0x54], eax
jmp 0x3001e689
mov dword [esp + 0x54], ebx
cmp byte [esp + 0xb0], bl
je 0x3001e697
add dword [esp + 0x34], 3
cmp di, bx
mov dword [esp + 0x18], ebx
jbe 0x3001e752
cmp byte [esp + 0xb0], bl
mov dword [esp + 0x98], 0xffffffff
je 0x3001e6d2
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov al, byte [ecx + edx]
movzx eax, al
inc ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x98], eax
cmp word [esp + 0x18], bx
jbe 0x3001e6ea
push 0x30294774
lea ecx, [esp + 0x178]
call fcn.30074eb0
lea ecx, [esp + 0x30]
call fcn.300dfe10
mov edi, eax
mov eax, dword [esp + 0x38]
cmp eax, 0xffffffff
je 0x3001e704
cmp dword [esp + 0x34], eax
jg 0x3001e740
push edi
lea ecx, [esp + 0x178]
call fcn.30074eb0
mov ecx, dword [esp + 0x98]
push edi
mov edi, dword [esp + 0x1c]
movzx edx, di
push ecx
mov ecx, dword [esp + 0x5c]
push edx
call fcn.300983c0
inc edi
cmp di, word [esp + 0xd0]
mov dword [esp + 0x18], edi
jb 0x3001e6a4
jmp 0x3001e752
lea ecx, [esp + 0x30]
call fcn.300e1cd0
push 1
mov ecx, esi
call fcn.300f8ab0
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
add eax, ecx
mov edx, dword [esp + 0x64]
add ecx, 2
mov dword [esp + 0x34], ecx
xor ecx, ecx
mov ch, byte [eax + 1]
push ebx
mov cl, byte [eax]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x5c], eax
movzx ecx, cx
add eax, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x290], ecx
sub eax, edx
mov ecx, esi
mov dword [esp + 0x288], eax
call fcn.300f8ec0
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.300f8e70
mov edi, eax
cmp edi, ebx
je 0x3001ea6c
cmp dword [esp + 0x18], ebx
je 0x3001ea6c
mov ecx, dword [esi + 0xc98]
push 1
push ecx
push edi
mov ecx, esi
call fcn.300ff500
mov edx, dword [esi + 0xc84]
mov eax, dword [esp + 0x18]
push ebx
push edx
push eax
mov ecx, esi
call fcn.300ff500
push edi
lea ecx, [esp + 0x100]
call fcn.300ba270
mov ecx, dword [esp + 0xfc]
mov edx, dword [esi + 0xc88]
push 3
push ecx
mov ecx, dword [esp + 0x20]
push edx
call fcn.300edb30
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x108]
mov dword [esp + 0x100], ebx
call fcn.300ba270
mov ecx, dword [esp + 0x104]
mov edx, dword [esi + 0xc78]
push 3
push ecx
push edx
mov ecx, edi
call fcn.300edb30
mov eax, dword [esp + 0x60]
mov eax, dword [eax + 0x14]
cmp eax, ebx
mov dword [esp + 0x104], ebx
mov dword [esp + 0x18], ebx
je 0x3001e84f
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 0x20]
cmp eax, ebx
je 0x3001e85e
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x20]
cmp ecx, ebx
mov eax, dword [esp + 0x30]
mov dword [esp + 0x98], eax
je 0x3001e896
call fcn.3001a160
test eax, eax
je 0x3001e896
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0x20]
call fcn.3001a160
mov eax, dword [eax + 0x84]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x54]
cmp eax, ebx
je 0x3001e8a4
mov dword [edi + 0xa0], eax
cmp dword [esp + 0x178], ebx
je 0x3001e8c0
mov ecx, dword [esp + 0x174]
push ecx
lea ecx, [edi + 0x90]
call fcn.30074d90
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x1c]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x60]
mov ecx, dword [eax]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0xc]
push edx
lea eax, [esp + 0x2a0]
mov dword [esp + 0x2c], ecx
push eax
mov ecx, esi
call fcn.30101cc0
mov eax, dword [eax]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xd0]
push ecx
mov ecx, dword [esp + 0x288]
push edx
push eax
mov eax, dword [esp + 0x298]
mov edx, ecx
sub edx, eax
push edx
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0xac]
add eax, edx
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x80]
push edx
push ecx
mov ecx, dword [esp + 0x4c]
lea edx, [eax + ecx]
push edx
push eax
mov eax, dword [esp + 0x5c]
push eax
mov ecx, edi
call fcn.300ebab0
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x29c], ebx
cmp byte [ecx], bl
jne 0x3001e999
push edi
lea ecx, [esp + 0x118]
call fcn.300ba270
mov edx, dword [esp + 0x114]
push edx
lea ecx, [esi + 0x658]
call fcn.30013c70
lea ecx, [esp + 0x174]
mov dword [esp + 0x114], ebx
call fcn.30025af0
jmp case.0x3001c390.22
cmp dword [esp + 0x24], 5
jle 0x3001ea26
mov ecx, dword [esp + 0x14]
call fcn.30018680
test eax, eax
je 0x3001ea26
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x3d], bl
je 0x3001ea26
cmp dword [esi + 0x738], ebx
jne 0x3001ea26
cmp dword [eax + 0x18], ebx
je 0x3001ea6c
push edi
lea ecx, [esp + 0x120]
call fcn.300ba270
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x18]
push ecx
lea edx, [esp + 0x2a8]
push edx
mov ecx, esi
call fcn.30101cc0
mov ecx, dword [esp + 0x11c]
mov edx, dword [eax]
push 2
push ecx
push edx
mov ecx, edi
call fcn.300edb30
lea ecx, [esp + 0x174]
mov dword [esp + 0x2a4], ebx
mov dword [esp + 0x11c], ebx
call fcn.30025af0
jmp case.0x3001c390.22
push edi
lea ecx, [esp + 0x130]
call fcn.300ba270
mov eax, dword [esp + 0xc]
push eax
lea ecx, [esp + 0x2b0]
push ecx
mov ecx, esi
call fcn.30101cc0
mov edx, dword [esp + 0x12c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1c]
push edx
push eax
push ecx
mov ecx, esi
call fcn.3010d7f0
mov dword [esp + 0x2ac], ebx
mov dword [esp + 0x12c], ebx
lea ecx, [esp + 0x174]
call fcn.30025af0
jmp case.0x3001c390.22
lea edx, [esp + 0x2b4]
lea edi, [esi + 0x658]
push edx
mov ecx, edi
call fcn.30003450
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.30005bf0
cmp dword [esp + 0x24], 5
mov dword [esp + 0x2b4], ebx
jle 0x3001eac3
lea ecx, [esp + 0x7c]
push ecx
lea edx, [esp + 0x7c]
push edx
push eax
call fcn.3011e5f0
add esp, 0xc
mov byte [esp + eax + 0x78], bl
jmp 0x3001eaec
cmp byte [esp + 0x13], 0x37
jne 0x3001eae4
cmp eax, 0xff
jle 0x3001eae4
mov ecx, eax
sar ecx, 8
mov byte [esp + 0x78], cl
mov byte [esp + 0x79], al
mov byte [esp + 0x7a], bl
jmp 0x3001eaec
mov byte [esp + 0x78], al
mov byte [esp + 0x79], bl
mov edx, dword [esp + 0x24]
push edx
lea eax, [esp + 0x7c]
push eax
push esi
lea ecx, [esp + 0x2c8]
call fcn.30018110
mov eax, dword [eax]
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], eax
inc dword [edi + 0x1c]
mov dword [esp + 0x2bc], ebx
jmp case.0x3001c390.22
lea eax, [esp + 0x2c4]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.30108d10
cmp dword [esp + 0x24], 5
mov dword [esp + 0xc], eax
mov dword [esp + 0x2c4], ebx
jle 0x3001eb7c
mov ecx, eax
lea edx, [ecx + 1]
mov dword [esp + 0x58], edx
mov dl, byte [ecx]
inc ecx
cmp dl, bl
jne 0x3001eb57
sub ecx, dword [esp + 0x58]
lea edx, [esp + 0xc0]
push edx
add ecx, eax
push ecx
push eax
call fcn.3011e530
mov eax, dword [esp + 0x18]
add esp, 0xc
jmp 0x3001ebb3
cmp byte [esp + 0x13], 0x36
jne 0x3001eba8
xor edx, edx
mov dl, byte [eax]
push edx
call fcn.300f6840
add esp, 4
test eax, eax
mov eax, dword [esp + 0xc]
je 0x3001eba8
movzx cx, byte [eax + 1]
mov ch, byte [eax]
mov dword [esp + 0xc0], ecx
jmp 0x3001ebb3
movzx dx, byte [eax]
mov dword [esp + 0xc0], edx
push eax
call fcn.30208320
movzx eax, word [esp + 0xc4]
add esp, 4
push esi
push eax
lea ecx, [esp + 0x2d4]
call fcn.30018150
mov eax, dword [eax]
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], eax
inc dword [edi + 0x1c]
mov dword [esp + 0x2cc], ebx
jmp case.0x3001c390.22
push edi
mov ecx, esi
call fcn.300194a0
jmp case.0x3001c390.22
lea eax, [esp + 0x13c]
lea edi, [esi + 0x658]
push eax
mov ecx, edi
call fcn.30003450
lea ecx, [esp + 0x134]
push ecx
mov ecx, edi
call fcn.30003450
mov edx, dword [esp + 0x13c]
mov eax, dword [esp + 0x134]
push edx
push eax
mov ecx, esi
call fcn.30105110
mov dword [esp + 0x134], ebx
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
cmp edx, 0xffffffff
jne 0x3001ec64
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], 2
inc dword [edi + 0x1c]
jmp case.0x3001c390.22
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
cmp byte [eax + ecx], 0x12
jne 0x3001ec91
inc eax
mov dword [esp + 0x34], eax
cmp byte [eax + ecx], 0x12
jne 0x3001ec84
inc eax
mov dword [esp + 0x34], eax
jmp 0x3001ec91
mov edx, 1
sub edx, dword [esp + 0x18]
mov dword [esp + 0x18], edx
cmp byte [eax + ecx], 0x9d
jne 0x3001ecc4
add eax, 3
lea edi, [eax + ecx]
add eax, 2
cmp edx, ebx
mov dword [esp + 0x34], eax
je 0x3001c5b5
movzx edx, byte [edi]
xor ecx, ecx
mov ch, byte [edi + 1]
movsx ecx, cx
or ecx, edx
add ecx, eax
mov dword [esp + 0x20], ecx
jmp case.0x3001c390.22
mov edx, dword [esp + 0x18]
mov dword [esp + 0x20], eax
xor eax, eax
cmp edx, 1
sete al
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], 2
push eax
call fcn.300b9fe0
mov ecx, dword [edi + 0x1c]
mov eax, dword [esp + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], eax
inc dword [edi + 0x1c]
jmp case.0x3001c390.22
lea ecx, [esp + 0x2d4]
lea edi, [esi + 0x658]
push ecx
mov ecx, edi
call fcn.30003450
mov edx, dword [eax]
push edx
lea eax, [esp + 0x148]
push eax
mov ecx, esi
call fcn.30018860
lea ecx, [esp + 0x2dc]
push ecx
mov ecx, edi
mov dword [esp + 0x2d8], ebx
call fcn.30003450
mov edx, dword [eax]
push edx
mov ecx, esi
call fcn.30105020
cmp eax, ebx
mov dword [esp + 0x2dc], ebx
je 0x3001ed76
mov edx, dword [esp + 0x24]
xor ecx, ecx
cmp edx, 7
setge cl
lea edx, [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x148]
push ebx
push 1
push edx
push ecx
push eax
mov ecx, esi
call fcn.30018810
test eax, eax
jne 0x3001ed7e
mov dword [esp + 0x2c], 2
mov edx, dword [edi + 0x1c]
mov eax, dword [edi + 0x24]
mov ecx, dword [esp + 0x2c]
mov dword [eax + edx*4], ecx
inc dword [edi + 0x1c]
mov dword [esp + 0x144], ebx
jmp case.0x3001c390.22
push edi
mov ecx, esi
call fcn.3001a750
jmp case.0x3001c390.22
mov ecx, esi
call fcn.30019e80
jmp case.0x3001c390.22
lea edx, [esp + 0x88]
lea ecx, [esi + 0x658]
push edx
call fcn.30003450
lea eax, [esp + 0x2e4]
push eax
lea ecx, [esi + 0x658]
call fcn.30003450
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.30105020
lea edx, [esp + 0x2ec]
push edx
lea ecx, [esi + 0x658]
mov dword [esp + 0x10], eax
mov dword [esp + 0x2e8], ebx
call fcn.30003450
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.30005bf0
mov dword [esp + 0x1c], eax
cmp dword [esp + 0xc], ebx
mov dword [esp + 0x2ec], ebx
je 0x3001ef0a
mov ecx, dword [esi + 0xbfc]
cmp byte [ecx + 0x21d], bl
je 0x3001ee46
lea ecx, [esp + 0x88]
call fcn.300948d0
test al, al
je 0x3001ee46
mov edx, dword [esi + 0xc44]
jmp 0x3001ee66
mov eax, dword [esp + 0x88]
push eax
lea ecx, [esp + 0x2f8]
push ecx
mov ecx, esi
call fcn.30018860
mov edx, dword [eax]
mov dword [esp + 0x2f4], ebx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x88], edx
mov dl, byte [esp + 0x13]
xor eax, eax
cmp dl, 0x53
mov edx, dword [ecx]
sete al
mov dword [esp + 0x58], eax
call dword [edx + 0xc]
cmp eax, ebx
jne 0x3001ee8c
mov eax, edi
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x1c]
push ebx
push 1
push ebx
push ecx
mov ecx, dword [esp + 0x98]
push edx
mov edx, dword [esp + 0x20]
push ecx
push eax
push edx
mov ecx, esi
call fcn.30107cb0
cmp eax, ebx
mov dword [esp + 0x84], eax
je 0x3001eeea
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x6c]
mov ecx, dword [ecx + 4]
push eax
call fcn.300bb1a0
inc dword [esi + 0x73c]
mov eax, dword [esi + 0x54c]
mov byte [eax + 0x3f], 1
mov dword [eax + 0x40], ebx
mov dword [esp + 0x88], ebx
jmp case.0x3001c390.22
mov edx, dword [esp + 0x60]
cmp dword [edx + 0xc], ebx
jne 0x3001ef3e
mov dword [esp + 0x90], 1
mov dword [esp + 0x88], ebx
jmp case.0x3001c390.22
mov edi, dword [esp + 0x1c]
cmp edi, ebx
je 0x3001ef25
lea eax, [esp + 0x58]
push eax
lea ecx, [esi + 0x658]
call fcn.30003450
dec edi
jne 0x3001ef12
mov ecx, dword [esi + 0x674]
mov edx, dword [esi + 0x67c]
mov dword [edx + ecx*4], 2
inc dword [esi + 0x674]
mov dword [esp + 0x88], ebx
jmp case.0x3001c390.22
push edi
lea eax, [esp + 0x34]
push eax
mov ecx, esi
call fcn.30019410
mov dword [esp + 0x8c], eax
jmp case.0x3001c390.22
push edi
lea ecx, [esp + 0x34]
push ecx
mov ecx, esi
call fcn.30019360
jmp case.0x3001c390.22
mov ecx, dword [esp + 0x14]
call fcn.30018680
push eax
push edi
mov ecx, esi
call fcn.3001ab50
jmp case.0x3001c390.22
mov ecx, dword [esp + 0x14]
call fcn.30018680
push eax
push edi
mov ecx, esi
call fcn.30019b10
jmp case.0x3001c390.22
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
push edx
push eax
mov ecx, esi
call fcn.3001a370
jmp case.0x3001c390.22
push edi
lea ecx, [esp + 0x34]
push ecx
mov ecx, esi
call fcn.30018d60
jmp case.0x3001c390.22
push edi
mov ecx, esi
call fcn.300195b0
jmp case.0x3001c390.22
push edi
mov ecx, esi
call fcn.30019920
jmp case.0x3001c390.22
mov ecx, esi
call fcn.30101420
jmp case.0x3001c390.22
push edi
mov ecx, esi
call fcn.30019690
jmp case.0x3001c390.22
mov ecx, esi
call fcn.3001a1f0
jmp case.0x3001c390.22
push edi
mov ecx, esi
call fcn.30019770
jmp case.0x3001c390.22
push edi
mov ecx, esi
call fcn.30019880
jmp case.0x3001c390.22
mov al, byte [esp + 0x13]
xor edx, edx
cmp al, 0x3a
sete dl
mov ecx, esi
push edx
push edi
call fcn.3001a5c0
jmp case.0x3001c390.22
push 6
lea ecx, [esi + 0x28]
call fcn.30099240
inc word [esi + 0x6b4]
cmp word [esi + 0x6b4], bx
jne 0x3001f040
mov ecx, esi
call fcn.300fc250
cmp dword [esp + 0x84], ebx
jne 0x3001bea1
cmp dword [esi + 0x6b0], ebx
jne 0x3001bea1
cmp dword [esp + 0x68], ebx
jne 0x3001bea1
cmp dword [esp + 0x90], ebx
jne 0x3001bea1
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x34], eax
jmp 0x3001bd00
mov dword [esp + 0x14c], 1
jmp 0x3001f0c2
cmp byte [esp + 0xe0], bl
je 0x3001f0c2
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xdc]
mov dword [eax + 0xbfc], ecx
mov dword [eax + 0xc00], edx
mov dword [eax + 0xc2c], 0xffffffff
cmp dword [esi + 0x6b0], ebx
jne 0x3001f1bc
cmp dword [esp + 0x84], ebx
jne 0x3001f1a9
cmp dword [esp + 0x14c], ebx
jne 0x3001f1a9
cmp dword [esp + 0x90], ebx
jne 0x3001f1a9
mov edi, dword [esi + 0x54c]
cmp edi, ebx
je 0x3001f1a9
mov eax, dword [esi + 0x6cc]
xor ecx, ecx
cmp eax, ebx
movzx eax, byte [edi + 0x3a]
setne cl
dec eax
mov dword [esp + 0xb8], 1
je 0x3001f13c
dec eax
jne 0x3001f162
cmp dword [esp + 0x68], ebx
je 0x3001f157
cmp ecx, ebx
jne 0x3001f157
lea ecx, [esi + 0x658]
call fcn.300181b0
jmp 0x3001f157
cmp dword [esp + 0x68], ebx
jne 0x3001f157
cmp ecx, ebx
jne 0x3001f157
mov eax, 2
push eax
lea ecx, [esi + 0x658]
call fcn.30013c70
mov dword [esp + 0xa0], 1
cmp byte [edi + 0x3f], bl
mov dword [esp + 0x68], ebx
je 0x3001f171
dec dword [esi + 0x73c]
push 0xffffffffffffffff
lea ecx, [esi + 0x28]
call fcn.300988c0
cmp dword [edi + 8], ebx
jne 0x3001f19e
mov ecx, dword [esi + 0x6cc]
mov eax, 1
cmp ecx, eax
jne 0x3001f19e
cmp dword [esi + 0x734], eax
jg 0x3001f19e
mov ecx, esi
call fcn.30019f70
lea ecx, [esi + 0x144]
call fcn.300bb200
mov eax, dword [esp + 0xa8]
cmp dword [esi + 0x54c], eax
jne 0x3001b970
cmp dword [esi + 0x734], 1
jg 0x3001f2ee
cmp dword [esi + 0x6b0], ebx
je 0x3001f266
mov edx, dword [esp + 0xa8]
cmp dword [esi + 0x54c], edx
je 0x3001f206
lea edi, [esi + 0x144]
lea ebx, [ebx]
mov ecx, edi
call fcn.300bb200
mov eax, dword [esp + 0xa8]
cmp dword [esi + 0x54c], eax
jne 0x3001f1f0
mov ecx, dword [esi + 0x540]
call fcn.300bd6e0
mov ecx, dword [esi + 0x544]
call fcn.300bd6e0
mov ecx, dword [esi + 0x538]
call fcn.300bd6e0
mov ecx, dword [esi + 0x53c]
call fcn.300bd6e0
mov ecx, dword [esi + 0x540]
mov byte [ecx + 0xc], 1
mov edx, dword [esi + 0x544]
mov byte [edx + 0xc], 1
mov eax, dword [esi + 0x538]
mov byte [eax + 0xc], 1
mov ecx, dword [esi + 0x53c]
mov byte [ecx + 0xc], 1
push ebx
lea ecx, [esi + 0x658]
call fcn.300181d0
cmp dword [ebp + 8], ebx
jne 0x3001f2ca
mov eax, dword [esi + 0x674]
cmp eax, ebx
jbe 0x3001f29a
mov dword [esi + 0x674], ebx
jmp 0x3001f280
mov edx, dword [esi + 0x674]
mov ecx, dword [esi + 0x67c]
dec eax
add edx, eax
cmp eax, ebx
mov dword [ecx + edx*4], 2
jne 0x3001f280
mov eax, dword [esi + 0x69c]
cmp eax, ebx
jbe 0x3001f2ca
mov dword [esi + 0x69c], ebx
lea ebx, [ebx]
mov edx, dword [esi + 0x69c]
mov ecx, dword [esi + 0x6a4]
dec eax
add edx, eax
cmp eax, ebx
mov dword [ecx + edx*4], 2
jne 0x3001f2b0
mov ecx, esi
call fcn.300fb470
push 1
push esi
call fcn.300510b0
add esp, 8
lea ecx, [esi + 0x144]
call fcn.300c1e50
mov ecx, esi
call fcn.300f8940
mov edx, dword [esi + 0x734]
dec edx
push edx
mov ecx, esi
call fcn.300f9540
dec dword [esi + 0x73c]
lea eax, [esp + 0x338]
mov ecx, 4
nop
sub eax, 4
dec ecx
mov dword [eax], ebx
jne 0x3001f310
mov dword [esp + 0x2c], ebx
lea ecx, [esp + 0x368]
call fcn.301c7748
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea ecx, [esp + 0x39c]
call fcn.300c3150
lea ecx, [esp + 0xd4]
call fcn.30018410
push 0x30003440
push 4
push 4
lea ecx, [esp + 0x334]
push ecx
call fcn.30001080
lea ecx, [esp + 0x368]
mov dword [esp + 0x2c], ebx
call fcn.301c7748
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4