Function at 0x5d7ec0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xb0
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov eax, dword [ebp + 0x370]
test eax, eax
jle 0x5d7edb
call fcn.005d4d00
movsx eax, word [ebp + 0x136]
movsx edx, word [ebp + 0x124]
movsx ecx, word [ebp + 0x138]
movsx esi, word [ebp + 0x122]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x110]
mov dword [esp + 0x48], ecx
lea ebx, [edx + edx + 0xc]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov al, byte [esp + 0xc4]
mov dword [0x771050], 1
mov byte [ebp + 0x144], al
mov eax, dword [ebp + 0x110]
mov dword [esp + 0x50], ecx
xor ecx, ecx
add esi, 5
cmp word [eax + 0x8ea8], cx
mov dword [esp + 0x4c], edx
jle 0x5d7f64
xor edx, edx
mov byte [edx + eax + 0xd9], 0
mov eax, dword [ebp + 0x110]
inc ecx
add edx, 0x1a0
movsx edi, word [eax + 0x8ea8]
cmp ecx, edi
jl 0x5d7f44
mov eax, dword [ebp + 0x10c]
mov ecx, dword [eax + 0x120]
mov eax, dword [eax + 0x124]
mov dword [esp + 0x88], ecx
mov dword [0x771024], ecx
mov dword [0x771028], eax
mov ecx, dword [ebp + 0x34c]
mov dword [0x73f5bc], ecx
mov ecx, dword [ebp + 0x34c]
mov dword [esp + 0x7c], eax
call fcn.005ddf50
mov edx, dword [esp + 0x48]
add esi, 8
sub edx, 8
add ebx, 0xc
mov dword [esp + 0x48], edx
mov edx, dword [ebp + 0x10c]
mov dword [esp + 0x6c], 0xffffffff
mov dword [esp + 0x78], esi
mov eax, dword [edx + 0x88]
mov dword [esp + 0x60], ebx
test eax, eax
je 0x5d7fec
mov eax, dword [ebp + 0x110]
mov dword [esp + 0x70], 0
mov cl, byte [eax + 0x8ecd]
test cl, cl
je 0x5d7ff4
mov dword [esp + 0x70], 1
xor edi, edi
test ebx, ebx
mov dword [esp + 0x2c], edi
jle 0x5d887a
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x48]
mov edx, edi
mov dword [esp + 0x84], ebx
and edx, 3
mov dword [esp + 0x20], ecx
cmp dl, 3
jne 0x5d802e
mov ecx, dword [0x66c98c]
test ecx, ecx
je 0x5d802e
call fcn.0048b900
mov eax, edi
and eax, 1
cmp eax, 1
mov dword [esp + 0x5c], eax
jne 0x5d804f
mov eax, dword [ebp + 0x2ec]
test eax, eax
je 0x5d804f
push 0
mov ecx, ebp
call fcn.005d58e0
test esi, esi
mov dword [esp + 0x80], 0
jle 0x5d8851
mov eax, dword [esp + 0x20]
test eax, eax
jl 0x5d881f
test ebx, ebx
jl 0x5d881f
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x20]
cmp ecx, eax
jge 0x5d8814
cmp ebx, dword [esp + 0x50]
jge 0x5d8814
mov dword [0x771018], ecx
mov dword [0x77101c], ebx
mov eax, dword [ebp + 0x110]
lea esi, [ebx*8]
sub esi, ebx
mov edx, dword [eax + 0x8e8c]
mov ecx, dword [edx + ecx*4]
mov edx, dword [ebp + 0xf8]
movsx edi, word [ecx + esi*4]
lea esi, [ecx + esi*4]
mov ecx, dword [ebp + 0xfc]
sub edi, edx
movsx edx, word [esi + 2]
sub edx, ecx
mov dword [esp + 0x30], edi
movsx ecx, word [ebp + 0x114]
add ecx, edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x38], ecx
xor ecx, ecx
mov cl, byte [esi + 4]
lea ecx, [ecx + ecx*2]
movsx ecx, word [eax + ecx*2 + 0x1a]
add ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x28], ecx
mov ecx, dword [edx*4 + 0x7710a0]
mov edx, dword [esp + 0x7c]
mov ecx, dword [ecx + ebx*4]
test edx, ecx
je 0x5d8114
mov byte [esp + 0x1c], 0xf
jmp 0x5d8149
mov edx, dword [esp + 0x88]
test edx, ecx
jne 0x5d8135
mov ecx, dword [esp + 0x70]
test ecx, ecx
jne 0x5d8135
mov byte [esp + 0x1c], 0
mov byte [esi + 7], 0
jmp 0x5d874b
mov cl, byte [eax + 0x8ece]
neg cl
sbb cl, cl
and cl, 0x71
add cl, 0xf
mov byte [esp + 0x1c], cl
cmp edi, dword [ebp + 0x98]
jg 0x5d874b
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp + 0x9c]
cmp ecx, edx
jg 0x5d874b
mov edx, dword [esp + 0x38]
mov ecx, dword [ebp + 0x90]
cmp edx, ecx
jle 0x5d874b
mov ecx, dword [esp + 0x28]
mov edx, dword [ebp + 0x94]
cmp ecx, edx
jle 0x5d874b
mov edx, dword [ebp + 0x104]
mov cl, byte [esi + 5]
test edx, edx
mov byte [esp + 0x54], cl
je 0x5d81c6
xor dx, dx
mov dl, cl
cmp dx, word [eax + 0x8ea8]
jge 0x5d81c6
mov ecx, dword [esp + 0x54]
and ecx, 0xff
lea edx, [ecx + ecx*2]
lea ecx, [ecx + edx*4]
shl ecx, 5
lea eax, [ecx + eax + 0xd9]
inc byte [eax]
mov cl, byte [ebp + 0x146]
or eax, 0xffffffff
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], eax
xor eax, eax
test cl, cl
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
je 0x5d831f
mov cl, byte [esp + 0x1c]
mov dl, byte [esi + 7]
cmp dl, cl
jne 0x5d8323
cmp cl, 0xf
jne 0x5d8242
mov edx, dword [ebp + 0x110]
mov cl, byte [edx + 0x8ece]
test cl, cl
je 0x5d822d
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x80]
push eax
mov eax, dword [esp + 0x28]
push ecx
push edx
push eax
push ebx
mov ecx, ebp
call fcn.005d9cf0
xor ecx, ecx
mov dword [esp + 0x34], eax
mov cl, byte [esi + 8]
cmp ecx, eax
jne 0x5d831f
xor eax, eax
jmp 0x5d8247
cmp cl, 0x80
jne 0x5d8285
cmp dword [esp + 0x70], eax
jne 0x5d826e
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
push 1
push edx
mov edx, dword [esp + 0x28]
push eax
push ecx
push edx
push ebx
mov ecx, ebp
call fcn.005d9cf0
xor ecx, ecx
mov dword [esp + 0x24], eax
mov cl, byte [esi + 0xe]
cmp ecx, eax
jne 0x5d831f
mov cl, byte [esp + 0x1c]
xor eax, eax
cmp dword [ebp + 0x2b4], eax
je 0x5d874b
cmp dword [ebp + 0x2b8], eax
je 0x5d82d1
cmp edi, dword [ebp + 0x2d4]
jg 0x5d82cd
mov edx, dword [esp + 0x38]
cmp edx, dword [ebp + 0x2cc]
jl 0x5d82cd
mov edx, dword [esp + 0x14]
cmp edx, dword [ebp + 0x2d8]
jg 0x5d82cd
mov edx, dword [esp + 0x28]
mov dword [esp + 0x40], 1
cmp edx, dword [ebp + 0x2d0]
jge 0x5d82d1
mov dword [esp + 0x40], eax
cmp edi, dword [ebp + 0x2c4]
jg 0x5d8307
mov edx, dword [esp + 0x38]
cmp edx, dword [ebp + 0x2bc]
jl 0x5d8307
mov edx, dword [esp + 0x14]
cmp edx, dword [ebp + 0x2c8]
jg 0x5d8307
mov edx, dword [esp + 0x28]
cmp edx, dword [ebp + 0x2c0]
jl 0x5d8307
mov dword [esp + 0x3c], 1
jmp 0x5d8323
cmp dword [esp + 0x40], eax
je 0x5d874b
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], 2
jmp 0x5d8323
mov cl, byte [esp + 0x1c]
mov edx, dword [ebp + 0x198]
xor eax, eax
mov al, byte [esi + 4]
shl eax, 2
mov edi, dword [edx + eax]
mov edx, dword [ebp + 0x19c]
mov eax, dword [edx + eax]
mov edx, dword [ebp + 0x110]
mov dword [esp + 0x44], eax
mov al, byte [edx + 0x8ece]
test al, al
jne 0x5d8359
xor eax, eax
mov dword [esp + 0x34], eax
jmp 0x5d835b
xor eax, eax
cmp dword [esp + 0x70], eax
je 0x5d8365
mov dword [esp + 0x24], eax
cmp dword [esp + 0x34], 0xffffffff
jne 0x5d839b
cmp cl, 0xf
jne 0x5d8397
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
push 0
push eax
mov eax, dword [esp + 0x28]
push ecx
push edx
push eax
push ebx
mov ecx, ebp
call fcn.005d9cf0
mov dword [esp + 0x34], eax
xor eax, eax
jmp 0x5d839b
mov dword [esp + 0x34], eax
cmp dword [esp + 0x24], 0xffffffff
jne 0x5d83cf
mov cl, byte [esp + 0x1c]
test cl, cl
je 0x5d83cb
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
push 1
push ecx
mov ecx, dword [esp + 0x28]
push edx
push eax
push ecx
push ebx
mov ecx, ebp
call fcn.005d9cf0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x44]
mov edx, dword [edi + eax*8]
mov eax, dword [edi + eax*8 + 4]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x38], eax
mov eax, dword [ecx + edx*4]
mov dword [esp + 0x28], eax
mov al, byte [esp + 0x1c]
cmp al, 0x80
jne 0x5d840b
mov ecx, dword [edi]
mov dword [esp + 0x18], 1
xor ebx, ebx
mov dword [esp + 0x38], ecx
jmp 0x5d8425
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x38]
xor ebx, ebx
test ecx, ecx
setne bl
xor edx, edx
test eax, eax
setne dl
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x24]
test eax, eax
jle 0x5d843d
mov eax, dword [esp + 0x28]
mov dword [esp + 0x44], 1
test eax, eax
jne 0x5d8445
mov dword [esp + 0x44], 0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x6c]
cmp eax, ecx
je 0x5d8546
test eax, eax
jne 0x5d84a1
mov eax, dword [ebp + 0x9c]
mov ecx, dword [ebp + 0x98]
mov edx, dword [ebp + 0x94]
push eax
mov eax, dword [ebp + 0x90]
push ecx
mov ecx, dword [ebp + 0x18c]
push edx
push eax
call fcn.005237c0
mov ecx, dword [ebp + 0x9c]
mov edx, dword [ebp + 0x98]
mov eax, dword [ebp + 0x94]
push ecx
mov ecx, dword [ebp + 0x90]
push edx
push eax
push ecx
jmp 0x5d8533
cmp eax, 1
jne 0x5d84eb
mov edx, dword [ebp + 0x2c8]
mov eax, dword [ebp + 0x2c4]
mov ecx, dword [ebp + 0x2c0]
push edx
mov edx, dword [ebp + 0x2bc]
push eax
push ecx
mov ecx, dword [ebp + 0x18c]
push edx
call fcn.005237c0
mov eax, dword [ebp + 0x2c8]
mov ecx, dword [ebp + 0x2c4]
mov edx, dword [ebp + 0x2c0]
push eax
mov eax, dword [ebp + 0x2bc]
push ecx
push edx
push eax
jmp 0x5d8533
cmp eax, 2
jne 0x5d8542
mov ecx, dword [ebp + 0x2d8]
mov edx, dword [ebp + 0x2d4]
mov eax, dword [ebp + 0x2d0]
push ecx
mov ecx, dword [ebp + 0x2cc]
push edx
push eax
push ecx
mov ecx, dword [ebp + 0x18c]
call fcn.005237c0
mov edx, dword [ebp + 0x2d8]
mov eax, dword [ebp + 0x2d4]
mov ecx, dword [ebp + 0x2d0]
push edx
mov edx, dword [ebp + 0x2cc]
push eax
push ecx
push edx
mov ecx, dword [ebp + 0x190]
call fcn.005237c0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x6c], eax
test ebx, ebx
je 0x5d8564
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x74]
push eax
push ecx
mov ecx, dword [ebp + 0x18c]
push edx
call fcn.00523ed0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x5d8586
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
push eax
push ecx
mov ecx, dword [ebp + 0x190]
push edx
call fcn.00523ed0
mov eax, dword [esp + 0x44]
test eax, eax
je 0x5d85ce
test ebx, ebx
je 0x5d85ac
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
push eax
push ecx
mov ecx, dword [ebp + 0x18c]
push edx
call fcn.00523f20
mov eax, dword [esp + 0x18]
test eax, eax
je 0x5d85ce
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
push eax
push ecx
mov ecx, dword [ebp + 0x190]
push edx
call fcn.00523f20
mov eax, dword [esp + 0x40]
test eax, eax
je 0x5d86b4
mov eax, dword [ebp + 0x2d8]
mov ecx, dword [ebp + 0x2d4]
mov edx, dword [ebp + 0x2d0]
push eax
mov eax, dword [ebp + 0x2cc]
push ecx
mov ecx, dword [ebp + 0x18c]
push edx
push eax
call fcn.005237c0
mov ecx, dword [ebp + 0x2d8]
mov edx, dword [ebp + 0x2d4]
mov eax, dword [ebp + 0x2d0]
push ecx
mov ecx, dword [ebp + 0x2cc]
push edx
push eax
push ecx
mov ecx, dword [ebp + 0x190]
call fcn.005237c0
test ebx, ebx
mov dword [esp + 0x6c], 2
je 0x5d8650
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x74]
mov ecx, dword [ebp + 0x18c]
push edx
push edi
push eax
call fcn.00523ed0
jmp 0x5d8654
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x18]
test eax, eax
je 0x5d8672
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
push ecx
mov ecx, dword [ebp + 0x190]
push edi
push edx
call fcn.00523ed0
mov eax, dword [esp + 0x44]
test eax, eax
je 0x5d86b8
test ebx, ebx
je 0x5d8694
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
push eax
push edi
push ecx
mov ecx, dword [ebp + 0x18c]
call fcn.00523f20
mov eax, dword [esp + 0x18]
test eax, eax
je 0x5d86b8
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
mov ecx, dword [ebp + 0x190]
push edx
push edi
push eax
call fcn.00523f20
jmp 0x5d86b8
mov edi, dword [esp + 0x30]
mov cl, byte [esi + 5]
mov byte [esp + 0x54], cl
mov ecx, dword [ebp + 0x110]
mov eax, dword [esp + 0x54]
and eax, 0xff
lea edx, [eax + eax*2]
lea eax, [eax + edx*4]
shl eax, 5
mov ax, word [eax + ecx + 0x14c]
cmp ax, 0xffff
je 0x5d86e9
mov byte [esp + 0x54], al
mov cl, byte [esp + 0x24]
mov dl, byte [esp + 0x34]
mov al, byte [esp + 0x1c]
mov byte [esi + 0xe], cl
mov cl, byte [esi + 0xa]
mov byte [esi + 8], dl
mov edx, dword [esp + 0x18]
and cl, 0xbf
mov byte [esi + 7], al
mov byte [esi + 9], al
mov eax, dword [esp + 0x1c]
mov byte [esi + 0xa], cl
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x88]
push ebx
push eax
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x64]
push edx
push eax
push edi
push ecx
push esi
mov ecx, ebp
call fcn.005d9e90
mov eax, dword [0x77104c]
mov ebx, dword [esp + 0x84]
mov edi, dword [esp + 0x30]
inc eax
mov dword [0x77104c], eax
test esi, esi
je 0x5d881f
mov al, byte [esp + 0x1c]
mov dword [0x73f5b8], 1
test al, al
jne 0x5d8776
mov ecx, dword [ebp + 0x34c]
push 5
push 0
call fcn.005dd910
jmp 0x5d877a
cmp al, 0xf
je 0x5d8784
mov dword [0x73f5a8], 1
movzx cx, byte [esi + 6]
imul cx, word [ebp + 0x11a]
mov edx, dword [esp + 0x1c]
mov eax, dword [ebp + 0x34c]
push edx
mov edx, dword [ebp + 0x338]
push eax
mov eax, dword [esp + 0x1c]
add ecx, eax
push ecx
mov ecx, dword [ebp + 0x110]
push edi
push edx
push esi
call fcn.00482e00
mov ecx, dword [ebp + 0x34c]
push 0x28
push 0
call fcn.005dd910
mov dword [0x73f5a8], 0
mov eax, dword [esi + 0x18]
test eax, eax
je 0x5d8808
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebp + 0x338]
push ecx
push edx
movsx edx, word [ebp + 0x11a]
xor ecx, ecx
mov cl, byte [esi + 6]
imul ecx, edx
add ecx, dword [esp + 0x1c]
push ecx
push edi
push eax
mov eax, dword [ebp + 0x108]
mov ecx, dword [eax + 0x70]
call fcn.00524fe0
mov dword [0x73f5b8], 0
jmp 0x5d881f
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x80], ecx
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x78]
inc ebx
inc esi
inc eax
cmp eax, ecx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x20], esi
mov dword [esp + 0x80], eax
jl 0x5d8062
mov edi, dword [esp + 0x2c]
mov esi, ecx
cmp dword [esp + 0x5c], 1
je 0x5d885e
dec dword [esp + 0x10]
jmp 0x5d8862
inc dword [esp + 0x48]
mov ecx, dword [0x771050]
mov eax, dword [esp + 0x60]
add edi, ecx
cmp edi, eax
mov dword [esp + 0x2c], edi
jl 0x5d8002
mov eax, dword [ebp + 0x2ec]
xor edi, edi
cmp eax, edi
je 0x5d8897
push 1
mov ecx, ebp
call fcn.005d58e0
cmp dword [ebp + 0x2ec], edi
jne 0x5d8886
mov ecx, dword [0x66c98c]
mov dword [0x771050], edi
cmp ecx, edi
je 0x5d88ac
call fcn.0048b900
mov eax, dword [esp + 0xc8]
mov esi, dword [ebp + 0x90]
mov ecx, dword [esp + 0xcc]
add esi, eax
mov dword [ebp + 0x90], esi
mov edx, dword [ebp + 0x94]
add edx, ecx
mov dword [ebp + 0x94], edx
mov ebx, dword [ebp + 0x98]
add ebx, eax
mov dword [ebp + 0x98], ebx
mov esi, dword [ebp + 0x9c]
add esi, ecx
mov dword [ebp + 0x9c], esi
mov dword [0x73f5b8], 1
cmp byte [ebp + 0x16c], 2
jne 0x5d8944
mov edx, dword [ebp + 0x174]
push edi
push 0xff
push 0x28
push edi
push edi
push edi
sub edx, ecx
push edi
push edx
mov edx, dword [ebp + 0x170]
sub edx, eax
push edx
mov edx, dword [ebp + 0xcc]
sub edx, ecx
mov ecx, dword [ebp + 0xc8]
sub ecx, eax
push edx
push ecx
mov ecx, dword [ebp + 0x34c]
push 0x14
push 4
call fcn.005ddc90
mov edx, dword [0x6633d4]
mov eax, dword [edx + 0x1e0]
cmp eax, 1
je 0x5d895f
cmp eax, 6
jle 0x5d896a
cmp eax, 8
jg 0x5d896a
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x110]
mov ecx, dword [0x6633d4]
cmp dword [ecx + 0x1e0], 0x15
jne 0x5d8984
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x10c]
cmp dword [ebp + 0x368], edi
je 0x5d8a5c
call dword [sym.imp.WINMM.dll_timeGetTime]
mov esi, dword [ebp + 0x368]
mov ebx, eax
test esi, esi
je 0x5d8a5c
mov eax, dword [esi + 4]
test eax, eax
je 0x5d8a47
mov ecx, dword [esi + 0x1c]
test ecx, ecx
jne 0x5d89bd
mov dword [esi + 0x1c], ebx
jmp 0x5d8a09
mov eax, dword [esi + 0x18]
cmp eax, 1
je 0x5d89ca
cmp eax, 2
jne 0x5d8a09
mov eax, ebx
sub eax, ecx
mov ecx, dword [esi + 0x20]
cmp eax, ecx
jb 0x5d8a09
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
inc ecx
mov dword [esi + 8], ecx
cmp ecx, dword [edx + 0x18]
jl 0x5d89f8
mov ecx, dword [esi + 0x18]
mov dword [esi + 8], 0
cmp ecx, 2
jne 0x5d89f8
mov edi, 1
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x1c]
sub eax, ecx
add edx, ecx
cmp eax, ecx
mov dword [esi + 0x1c], edx
jae 0x5d89d5
mov eax, dword [esi + 0x14]
mov dword [0x73f5b4], 0xffffffff
mov dword [0x73f5b0], eax
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 8]
mov eax, dword [esi + 0x10]
push ecx
mov ecx, dword [esi + 0xc]
push edx
mov edx, dword [ebp + 0xfc]
sub eax, edx
mov edx, dword [ebp + 0x20]
push eax
mov eax, dword [ebp + 0xf8]
sub ecx, eax
push ecx
mov ecx, dword [esi + 4]
push edx
call fcn.0051f710
mov esi, dword [esi]
test esi, esi
jne 0x5d89a6
test edi, edi
je 0x5d8a5c
mov ecx, ebp
call fcn.005dc5c0
mov edi, dword [0x66c984]
mov esi, 0x68
mov eax, dword [esi + edi]
xor ebx, ebx
test eax, eax
mov dword [esp + 0x2c], ebx
jle 0x5d8af0
mov dword [esp + 0x10], ebx
mov eax, dword [esi + edi - 0x40]
mov ecx, dword [esp + 0x10]
mov edi, dword [esi + edi - 0x20]
mov edx, dword [0x771038]
add eax, ecx
push 0xffffffffffffffff
mov edi, dword [edi + ebx*4]
mov ecx, dword [eax + 4]
mov ebx, dword [eax + 8]
sub ecx, edx
mov edx, dword [eax + 0xc]
sub edx, dword [0x771038]
mov eax, dword [eax]
push edi
mov edi, dword [0x771034]
push 0xb
push 0
push 0
push 0
push 0
push edx
sub ebx, edi
add edx, ecx
push ebx
sub eax, edi
push ecx
mov ecx, dword [0x73f5bc]
sar edx, 1
push eax
push edx
push 5
call fcn.005ddc90
mov edi, dword [0x66c984]
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
inc ebx
mov eax, dword [esi + edi]
add ecx, 0x10
cmp ebx, eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x10], ecx
jl 0x5d8a78
add esi, 4
cmp esi, 0x88
jl 0x5d8a67
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
mov dword [0x73f5b8], 0
mov ebx, dword [ebp + 0x90]
sub ebx, eax
mov dword [ebp + 0x90], ebx
mov edi, dword [ebp + 0x94]
sub edi, ecx
mov dword [ebp + 0x94], edi
mov esi, dword [ebp + 0x98]
sub esi, eax
xor edi, edi
mov dword [ebp + 0x98], esi
mov edx, dword [ebp + 0x9c]
sub edx, ecx
mov dword [ebp + 0x9c], edx
mov eax, dword [ebp + 0x34c]
mov ecx, dword [eax + 0x68]
test ecx, ecx
jle 0x5d8ba4
mov ecx, dword [eax + 0x58]
mov eax, dword [ecx + edi*4]
test eax, eax
je 0x5d8b98
mov edx, dword [ebp + 0x34c]
mov ecx, dword [eax + 0x10]
mov esi, dword [edx + 0x60]
mov esi, dword [esi + ecx*4]
test esi, esi
jne 0x5d8b83
mov edx, dword [edx + 0x5c]
mov dword [edx + ecx*4], eax
jmp 0x5d8b86
mov dword [esi + 4], eax
mov edx, dword [ebp + 0x34c]
mov edx, dword [edx + 0x60]
mov dword [edx + ecx*4], eax
mov eax, dword [eax]
test eax, eax
jne 0x5d8b68
mov eax, dword [ebp + 0x34c]
inc edi
cmp edi, dword [eax + 0x68]
jl 0x5d8b5e
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x5d8bfa
mov eax, dword [ebp + 0x9c]
mov ecx, dword [ebp + 0x98]
mov edx, dword [ebp + 0x94]
push eax
mov eax, dword [ebp + 0x90]
push ecx
mov ecx, dword [ebp + 0x18c]
push edx
push eax
call fcn.005237c0
mov ecx, dword [ebp + 0x9c]
mov edx, dword [ebp + 0x98]
mov eax, dword [ebp + 0x94]
push ecx
mov ecx, dword [ebp + 0x90]
push edx
push eax
push ecx
mov ecx, dword [ebp + 0x190]
call fcn.005237c0
mov edx, dword [ebp + 0x108]
mov eax, dword [edx + 0x7c]
mov ecx, dword [eax + 0x28]
mov edx, dword [ecx + 8]
push edx
call fcn.006189c0
add esp, 4
xor ebx, ebx
mov eax, dword [ebp + 0x34c]
mov ecx, dword [eax + 0x5c]
mov esi, dword [ecx + ebx]
test esi, esi
je 0x5d8d01
mov al, byte [esi + 0x2c]
test al, al
jne 0x5d8cf6
mov eax, dword [ebp + 0x18c]
mov edx, dword [eax + 0x64]
mov ecx, dword [eax + 0x5c]
push edx
mov edx, dword [eax + 0x60]
push ecx
mov ecx, dword [eax + 0x58]
push edx
mov edx, dword [eax + 0x40]
mov eax, dword [eax + 0x3c]
push ecx
mov ecx, dword [ebp + 0x338]
push edx
push eax
mov edx, dword [ecx + 0xc0]
push edx
call fcn.00618820
mov eax, dword [esi + 0x28]
push eax
call fcn.00618860
mov edi, dword [esi + 0xc]
mov ecx, dword [esi + 0x1c]
and ecx, 0xfffe
mov edx, dword [edi + 4]
mov eax, dword [edi]
push ecx
mov ecx, dword [edi + 0x14]
push edx
mov edx, dword [edi + 0x10]
push eax
mov eax, dword [esi + 0x18]
push ecx
mov ecx, dword [esi + 0x14]
push edx
mov edx, dword [esi + 0x20]
push eax
push ecx
push edx
call fcn.00618bc0
mov eax, dword [ebp + 0x190]
add esp, 0x40
mov ecx, dword [eax + 0x64]
mov edx, dword [eax + 0x5c]
push ecx
mov ecx, dword [eax + 0x60]
push edx
mov edx, dword [eax + 0x58]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x3c]
mov eax, dword [ebp + 0x338]
push ecx
push edx
mov ecx, dword [eax + 0xc0]
push ecx
call fcn.00618820
mov edx, dword [esi + 0x1c]
mov eax, dword [edi + 4]
mov ecx, dword [edi]
or edx, 1
push edx
mov edx, dword [edi + 0x14]
push eax
mov eax, dword [edi + 0x10]
push ecx
mov ecx, dword [esi + 0x18]
push edx
mov edx, dword [esi + 0x14]
push eax
mov eax, dword [esi + 0x20]
push ecx
push edx
push eax
call fcn.00618bc0
add esp, 0x3c
mov esi, dword [esi + 4]
test esi, esi
jne 0x5d8c28
add ebx, 4
cmp ebx, 0x14
jle 0x5d8c14
mov ecx, dword [0x66c98c]
test ecx, ecx
je 0x5d8d22
call fcn.0048b900
mov ecx, dword [0x66c98c]
mov edx, dword [0x6633d4]
mov dword [esp + 0x58], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
cmp dword [edx + 0x1dc], 4
jne 0x5d8f56
mov eax, dword [ebp + 0x78]
test eax, eax
je 0x5d8f56
call fcn.0048abb0
test eax, eax
je 0x5d8f56
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [esp + 0xc8]
mov edi, eax
mov eax, dword [esp + 0xcc]
lea edx, [esp + 0x64]
neg eax
neg ecx
push eax
push ecx
push edx
mov ecx, ebp
call fcn.005da9a0
test eax, eax
je 0x5d8f56
mov edx, dword [esp + 0x68]
lea eax, [esp + 0x94]
lea ecx, [esp + 0x98]
push eax
mov eax, dword [esp + 0x68]
push ecx
push edx
push eax
mov ecx, ebp
call fcn.005daa40
mov ebx, dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [esp + 0x5c], eax
xor esi, esi
call ebx
mov ecx, dword [ebp + 0x10c]
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 0x24c]
test eax, eax
jle 0x5d8e68
mov ecx, dword [esp + 0x68]
mov edx, dword [ebp]
push 1
push esi
push esi
push esi
lea eax, [esp + 0x3c]
push 0xffffffffffffffff
push eax
mov eax, dword [esp + 0x7c]
push ecx
push eax
mov ecx, ebp
call dword [edx + 0x130]
test eax, eax
je 0x5d8e1e
mov ecx, dword [eax + 4]
mov esi, 1
mov dword [esp + 0x58], ecx
mov dword [0x77106c], esi
jmp 0x5d8ea0
mov eax, dword [0x77106c]
test eax, eax
je 0x5d8e68
mov edx, dword [ebp + 0x354]
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x64]
mov dword [0x65d5f0], edx
mov edx, dword [esp + 0xcc]
add ecx, eax
mov eax, dword [esp + 0x68]
mov dword [0x771060], edi
add eax, edx
mov dword [0x771064], ecx
mov dword [0x771068], eax
mov dword [0x77106c], 0
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
push 0
lea ecx, [esp + 0xb0]
push 0
push ecx
push edx
push eax
push 2
push 0x29
mov ecx, ebp
call fcn.005e30f0
cmp al, 0x34
jne 0x5d8ea0
mov ecx, dword [esp + 0xb8]
mov esi, 1
mov edx, dword [ecx + 4]
mov dword [esp + 0x58], edx
call ebx
mov edi, dword [esp + 0x60]
mov ecx, dword [0x6633d4]
sub eax, edi
push eax
push 0x11
call fcn.0041c830
test esi, esi
jne 0x5d8edd
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
lea eax, [esp + 0x58]
push eax
mov eax, dword [ebp + 0x34c]
push 0x28
push 0xa
push ecx
push edx
push eax
mov ecx, ebp
call fcn.005db500
mov esi, eax
lea eax, [esp + 0x8c]
mov ecx, dword [ebp + 0x10c]
push eax
lea eax, [esp + 0x94]
push eax
mov eax, dword [esp + 0x9c]
push eax
mov eax, dword [esp + 0xa4]
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x6c]
push eax
mov eax, dword [esp + 0x6c]
push eax
push esi
call dword [edx + 0xb0]
mov ecx, dword [esp + 0x90]
push ecx
mov ecx, dword [0x66c98c]
call fcn.0048b770
mov edx, dword [esp + 0x8c]
mov dword [ebp + 0x350], esi
test esi, esi
mov dword [ebp + 0x360], edx
je 0x5d8f4c
mov eax, dword [esp + 0x58]
mov dword [ebp + 0x354], eax
jmp 0x5d8f56
mov dword [ebp + 0x354], Ordinal_2
mov ebx, dword [ebp + 0x58]
test ebx, ebx
je 0x5d9029
mov edi, dword [ebx]
mov eax, dword [edi + 0x6c]
test eax, eax
je 0x5d901e
mov eax, dword [edi + 0x38]
test eax, eax
je 0x5d901e
mov edx, dword [edi]
lea eax, [esp + 0x9c]
push eax
mov ecx, edi
call dword [edx + 0xc8]
mov edx, dword [esp + 0xa0]
mov esi, dword [esp + 0xcc]
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xc8]
sub edx, esi
mov esi, dword [esp + 0xa4]
sub eax, ecx
sub esi, ecx
mov ecx, dword [esp + 0xa8]
sub ecx, dword [esp + 0xcc]
test eax, eax
jge 0x5d8fc8
xor eax, eax
test edx, edx
jge 0x5d8fce
xor edx, edx
mov edi, dword [edi + 0xe4]
push 0
push edi
push 0x1e
push 0
push 0
push 0
push 0
push ecx
push esi
push edx
push eax
push ecx
mov ecx, dword [ebp + 0x34c]
push 3
call fcn.005ddc90
test eax, eax
je 0x5d901e
mov ecx, dword [ebp + 0x34c]
mov edx, dword [ecx + 0x60]
mov edx, dword [edx + 0x78]
test edx, edx
jne 0x5d900f
mov ecx, dword [ecx + 0x5c]
mov dword [ecx + 0x78], eax
jmp 0x5d9012
mov dword [edx + 4], eax
mov edx, dword [ebp + 0x34c]
mov ecx, dword [edx + 0x60]
mov dword [ecx + 0x78], eax
mov ebx, dword [ebx + 8]
test ebx, ebx
jne 0x5d8f61
mov al, byte [ebp + 0x146]
test al, al
jne 0x5d9071
mov eax, dword [ebp + 0x338]
xor esi, esi
mov ecx, dword [eax + 0x1c]
test ecx, ecx
jle 0x5d9061
mov edx, dword [eax + 0x18]
mov ecx, dword [ebp + 0x194]
dec edx
push esi
push edx
push 0
call fcn.005238c0
mov eax, dword [ebp + 0x338]
inc esi
cmp esi, dword [eax + 0x1c]
jl 0x5d9042
mov ecx, dword [ebp + 0x348]
call fcn.005ddf50
jmp 0x5d92a1
mov eax, dword [ebp + 0x190]
mov ecx, dword [ebp + 0x18c]
push eax
push ecx
mov ecx, dword [ebp + 0x194]
call fcn.00524170
mov eax, dword [ebp + 0x2b4]
test eax, eax
je 0x5d9120
mov eax, dword [ebp + 0x2bc]
test eax, eax
jl 0x5d90d7
mov esi, dword [ebp + 0x2c0]
mov eax, dword [ebp + 0x2c8]
cmp esi, eax
jg 0x5d90d7
mov edx, dword [ebp + 0x2c4]
mov eax, dword [ebp + 0x2bc]
mov ecx, dword [ebp + 0x194]
push esi
push edx
push eax
call fcn.005238c0
mov eax, dword [ebp + 0x2c8]
inc esi
cmp esi, eax
jle 0x5d90b2
mov eax, dword [ebp + 0x2b8]
test eax, eax
je 0x5d9120
mov eax, dword [ebp + 0x2cc]
test eax, eax
jl 0x5d9120
mov esi, dword [ebp + 0x2d0]
mov eax, dword [ebp + 0x2d8]
cmp esi, eax
jg 0x5d9120
mov ecx, dword [ebp + 0x2d4]
mov edx, dword [ebp + 0x2cc]
push esi
push ecx
mov ecx, dword [ebp + 0x194]
push edx
call fcn.005238c0
mov eax, dword [ebp + 0x2d8]
inc esi
cmp esi, eax
jle 0x5d90fb
mov eax, dword [ebp + 0x34c]
mov dword [esp + 0x18], 0
mov ecx, dword [eax + 0x68]
test ecx, ecx
jle 0x5d92a1
mov eax, dword [eax + 0x58]
mov ecx, dword [esp + 0x18]
mov ebx, dword [eax + ecx*4]
test ebx, ebx
je 0x5d91d8
cmp dword [ebx + 0x10], 6
jl 0x5d91ce
mov edx, dword [ebp + 0x348]
mov ecx, dword [esp + 0x18]
mov eax, dword [edx + 0x58]
mov dl, byte [ebx + 0x2c]
neg dl
mov eax, dword [eax + ecx*4]
sbb edx, edx
and edx, 0x20
add edx, 0x24
test eax, eax
mov dword [esp + 0x10], edx
je 0x5d918c
mov ecx, dword [esp + 0x10]
lea edi, [eax + 0xc]
lea esi, [ebx + 0xc]
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5d91b9
mov eax, dword [eax]
test eax, eax
jne 0x5d9176
mov al, byte [ebx + 0x2c]
test al, al
jne 0x5d91bf
mov eax, dword [ebx + 0x1c]
mov ecx, dword [ebx + 0x18]
mov edx, dword [ebx + 0x14]
shr eax, 1
and eax, 1
push eax
mov eax, dword [ebx + 0xc]
push ecx
mov ecx, dword [ebx + 0x20]
push edx
push eax
push ecx
mov ecx, dword [ebp + 0x194]
call fcn.00523c80
jmp 0x5d91ce
mov byte [eax + 0x2c], 0xff
jmp 0x5d91ce
mov edx, dword [ebp + 0x194]
mov ecx, ebp
push edx
push ebx
call fcn.005d96a0
mov ebx, dword [ebx]
test ebx, ebx
jne 0x5d914b
mov eax, dword [ebp + 0x348]
mov edx, dword [esp + 0x18]
mov ecx, dword [eax + 0x58]
mov ebx, dword [ecx + edx*4]
test ebx, ebx
je 0x5d9287
cmp dword [ebx + 0x10], 6
jl 0x5d927d
mov cl, byte [ebx + 0x2c]
mov eax, ecx
and eax, 0xff
cmp eax, 0xffffffff
je 0x5d927d
mov edx, dword [ebp + 0x34c]
neg cl
mov eax, dword [edx + 0x58]
mov edx, dword [esp + 0x18]
sbb ecx, ecx
mov eax, dword [eax + edx*4]
and ecx, 0x20
add ecx, 0x24
test eax, eax
mov dword [esp + 0x10], ecx
je 0x5d9241
mov ecx, dword [esp + 0x10]
lea edi, [ebx + 0xc]
lea esi, [eax + 0xc]
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5d927d
mov eax, dword [eax]
test eax, eax
jne 0x5d922b
mov al, byte [ebx + 0x2c]
test al, al
jne 0x5d926e
mov eax, dword [ebx + 0x1c]
mov ecx, dword [ebx + 0x18]
mov edx, dword [ebx + 0x14]
shr eax, 1
and eax, 1
push eax
mov eax, dword [ebx + 0xc]
push ecx
mov ecx, dword [ebx + 0x20]
push edx
push eax
push ecx
mov ecx, dword [ebp + 0x194]
call fcn.00523c80
jmp 0x5d927d
mov edx, dword [ebp + 0x194]
mov ecx, ebp
push edx
push ebx
call fcn.005d96a0
mov ebx, dword [ebx]
test ebx, ebx
jne 0x5d91f0
mov eax, dword [ebp + 0x34c]
mov ecx, dword [esp + 0x18]
inc ecx
mov edx, dword [eax + 0x68]
mov dword [esp + 0x18], ecx
cmp ecx, edx
jl 0x5d9139
mov esi, dword [esp + 0xc8]
mov edi, dword [ebp + 0x90]
add edi, esi
mov dword [ebp + 0x90], edi
mov edi, dword [esp + 0xcc]
mov edx, dword [ebp + 0x94]
add edx, edi
mov dword [ebp + 0x94], edx
mov ecx, dword [ebp + 0x98]
add ecx, esi
mov dword [ebp + 0x98], ecx
mov eax, dword [ebp + 0x9c]
mov ecx, dword [ebp + 0x338]
add eax, edi
mov dword [ebp + 0x9c], eax
mov eax, dword [ebp + 0x194]
mov edx, dword [eax + 0x3c]
lea eax, [ecx + 0x28]
push edx
mov edx, dword [ebp + 0x94]
push eax
mov eax, dword [ebp + 0x90]
push edx
mov edx, dword [ebp + 0x20]
push eax
push edx
call fcn.00460d00
mov ecx, ebp
call fcn.005d95e0
mov edx, dword [ebp + 0x90]
sub edx, esi
mov dword [ebp + 0x90], edx
mov ecx, dword [ebp + 0x94]
sub ecx, edi
mov dword [ebp + 0x94], ecx
mov eax, dword [ebp + 0x98]
sub eax, esi
mov dword [ebp + 0x98], eax
mov ebx, dword [ebp + 0x9c]
mov eax, dword [ebp + 0x194]
sub ebx, edi
mov dword [ebp + 0x9c], ebx
mov ecx, dword [eax + 0x64]
mov edx, dword [eax + 0x5c]
push ecx
mov ecx, dword [eax + 0x60]
push edx
mov edx, dword [eax + 0x58]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x3c]
mov eax, dword [ebp + 0x340]
push ecx
push edx
push eax
call fcn.00618820
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp + 0x194]
mov dword [ecx + 0xd0], edx
mov eax, dword [0x65d440]
xor ecx, ecx
and eax, 0xff
mov cl, byte [0x65d43f]
push eax
push ecx
call fcn.00618940
push 0
push 0
call fcn.00618980
mov eax, 0x18
add esp, 0x2c
mov dword [esp + 0x2c], eax
mov edx, dword [ebp + 0x34c]
mov ecx, dword [edx + 0x5c]
mov esi, dword [ecx + eax]
test esi, esi
je 0x5d957d
mov al, byte [esi + 0x2c]
test al, al
jne 0x5d9562
mov edi, dword [esi + 0x1c]
mov ebx, 0
and edi, 0xffc
je 0x5d943c
mov edx, edi
and edx, 4
cmp dl, 4
jne 0x5d9405
push ebx
push 0xffff00ff
push ebx
push 0xffffff
call fcn.00618780
add esp, 0x10
mov eax, edi
and eax, 8
cmp al, 8
jne 0x5d9437
sar edi, 4
and edi, 0xff
mov eax, edi
shl eax, 0x10
or eax, edi
mov ecx, eax
shl ecx, 8
push ecx
push 0xff00ff
push eax
push 0xff00ff00
call fcn.00618780
add esp, 0x10
mov ebx, 1
mov edx, dword [esi + 0x28]
push edx
call fcn.00618860
mov edi, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
and eax, 3
mov ecx, dword [edi + 4]
mov edx, dword [edi]
push eax
mov eax, dword [edi + 0x14]
push ecx
mov ecx, dword [edi + 0x10]
push edx
mov edx, dword [esi + 0x18]
push eax
mov eax, dword [esi + 0x14]
push ecx
mov ecx, dword [esi + 0x20]
push edx
push eax
push ecx
call fcn.00618bc0
add esp, 0x24
test ebx, ebx
je 0x5d948c
push 0
push 0xff00ff00
push 0
push 0xff00ff
call fcn.00618780
add esp, 0x10
mov eax, dword [esi + 0x40]
test eax, eax
je 0x5d956e
mov eax, dword [ebp + 0x34c]
mov edi, dword [edi + 0x1c]
mov edx, dword [esi + 0x18]
mov dword [esp + 0x10], 0
mov ecx, dword [eax + 0x74]
add edi, edx
mov edx, dword [esi + 0x10]
mov dword [esp + 0x60], edi
test ecx, ecx
mov dword [esp + 0x5c], edx
jle 0x5d956e
mov ecx, dword [esi + 0x44]
push ecx
mov ecx, dword [esi + 0x40]
call fcn.0051fa80
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
push edx
push ecx
push eax
call fcn.0061a1a0
mov edx, dword [ebp + 0x34c]
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [edx + 0x6c]
mov edi, dword [eax + ecx*4]
test edi, edi
je 0x5d9546
mov ebx, dword [edi + 0xc]
mov ecx, dword [edi + 0x18]
mov eax, dword [esp + 0x60]
mov edx, dword [ebx + 0x1c]
add edx, ecx
cmp edx, eax
jg 0x5d9546
mov eax, dword [esp + 0x5c]
mov ecx, dword [edi + 0x10]
cmp ecx, eax
jg 0x5d9546
mov eax, dword [edi + 0x48]
push eax
push eax
call fcn.00618940
mov ecx, dword [edi + 0x1c]
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
and ecx, 3
push ecx
mov ecx, dword [ebx + 0x14]
push edx
mov edx, dword [ebx + 0x10]
push eax
mov eax, dword [edi + 0x18]
push ecx
mov ecx, dword [edi + 0x14]
push edx
mov edx, dword [edi + 0x20]
push eax
push ecx
push edx
call fcn.0061a1e0
add esp, 0x28
mov ecx, dword [ebp + 0x34c]
mov eax, dword [esp + 0x10]
inc eax
mov edx, dword [ecx + 0x74]
mov dword [esp + 0x10], eax
cmp eax, edx
jl 0x5d94c3
jmp 0x5d956e
mov edx, dword [ebp + 0x20]
mov ecx, ebp
push edx
push esi
call fcn.005d99b0
mov esi, dword [esi + 4]
test esi, esi
jne 0x5d93cc
mov eax, dword [esp + 0x2c]
add eax, 4
cmp eax, 0xa0
mov dword [esp + 0x2c], eax
jle 0x5d93b8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.00618980
mov ecx, dword [ebp + 0x20]
add esp, 8
push str.view::view_function_terrain
call fcn.0045ff30
mov eax, dword [ebp + 0x20]
pop edi
pop esi
mov ecx, dword [eax + 0xcc]
mov dword [eax + 0xd0], ecx
mov eax, dword [ebp + 0x348]
mov edx, dword [ebp + 0x34c]
mov dword [ebp + 0x34c], eax
mov dword [ebp + 0x348], edx
pop ebp
xor eax, eax
pop ebx
add esp, 0xb0
ret 0x14