Function at 0x54aa6f
Capabilities:
Inspect section memory permissions

Disassembly:
sub esp, 0x44
push ebx
push ebp
mov ebp, dword [esp + 0x50]
xor edx, edx
push esi
mov esi, dword [esp + 0x68]
or ecx, 0xffffffff
push edi
mov eax, dword [ebp]
mov ebx, edx
mov edi, dword [esp + 0x68]
mov dword [esi + 0x1c], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x14], edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x44], edi
mov dword [esp + 0x30], edx
mov dword [esp + 0x38], 0xa7
mov dword [esp + 0x24], edx
test ecx, ecx
je 0x54ab4e
test byte [edi + 0x18], 6
jne 0x54ab3f
mov edi, edx
cmp dword [eax + 0x14], edx
jle 0x54ab11
mov ebx, dword [eax + 0x10]
push ecx
push dword [ebx]
call fcn.005781b4
pop ecx
pop ecx
test eax, eax
je 0x54aaf4
mov eax, dword [esp + 0x20]
inc edi
mov ecx, dword [esp + 0x5c]
add ebx, 0x10
cmp edi, dword [eax + 0x14]
jl 0x54aad3
jmp 0x54ab0d
mov edx, dword [esp + 0x20]
mov eax, edi
add eax, eax
mov ecx, dword [edx + 0x10]
mov eax, dword [ecx + eax*8 + 0xc]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x30], eax
mov eax, edx
mov ebx, dword [esp + 0x18]
cmp edi, dword [eax + 0x14]
jne 0x54ab45
push ecx
push str.main
call fcn.005781b4
mov edi, dword [esp + 0x70]
pop ecx
pop ecx
test eax, eax
jne 0x54b184
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x5c], edx
jmp 0x54ab50
mov edi, dword [esp + 0x68]
jmp 0x54b184
mov edx, ecx
mov eax, dword [edi + 4]
mov dword [esp + 0x28], eax
test eax, eax
je 0x54ad71
xor ecx, ecx
lea ebx, [eax + 8]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], ebx
cmp dword [eax], ecx
jle 0x54ad3e
test dword [ebx + 0x28], 0x2000
mov edi, dword [ebx + 0x10]
mov dword [esp + 0x40], edi
je 0x54add8
xor eax, eax
mov edi, eax
mov eax, dword [ebx + 0x14]
and dword [esp + 0x3c], edi
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x50], eax
cmp dword [eax], edi
jle 0x54acbe
lea ebx, [eax + 0x14]
xor eax, eax
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x4c]
push eax
push edx
push dword [esp + 0x68]
lea eax, [ebx - 0xc]
push dword [esp + 0x70]
push eax
call fcn.0056ce8b
add esp, 0x14
test eax, eax
je 0x54ac96
cmp dword [esp + 0x4c], 0
jne 0x54ac71
cmp dword [esp + 0x14], 0
jle 0x54ac68
mov eax, dword [esp + 0x1c]
test dword [eax + 0x28], 0x400
je 0x54ac4e
push dword [esp + 0x64]
push dword [eax + 0x30]
call fcn.0056a3bf
pop ecx
pop ecx
test eax, eax
js 0x54ac4e
mov eax, dword [esp + 0x1c]
mov al, byte [eax + 0x24]
test al, 0x10
je 0x54ac96
test al, 8
jne 0x54ac35
mov eax, dword [esp + 0x24]
xor edi, edi
mov dword [esp + 0x14], edi
test eax, eax
je 0x54ac2f
push eax
push dword [esp + 0x24]
call fcn.005408da
pop ecx
pop ecx
mov dword [esp + 0x24], edi
jmp 0x54ac68
movzx eax, word [esi + 0x20]
push eax
push dword [esp + 0x1c]
lea eax, [esp + 0x2c]
push eax
push ebp
call fcn.00541041
add esp, 0x10
jmp 0x54ac68
mov eax, dword [esp + 0x24]
test eax, eax
je 0x54ac62
push eax
push dword [esp + 0x24]
call fcn.005408da
pop ecx
pop ecx
xor eax, eax
mov dword [esp + 0x24], eax
inc dword [esp + 0x14]
xor edi, edi
inc edi
jmp 0x54ac78
cmp dword [esp + 0x14], 0
jg 0x54ac96
mov eax, dword [esp + 0x1c]
inc dword [esp + 0x34]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x3c]
mov word [esi + 0x20], ax
or dword [ebx], 0x40
test byte [ebx], 0x80
jne 0x54acb2
jmp 0x54ac9a
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x50]
inc eax
mov edx, dword [esp + 0x5c]
add ebx, 0x14
mov dword [esp + 0x3c], eax
cmp eax, dword [ecx]
jl 0x54aba5
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
test edi, edi
jne 0x54ad1e
cmp dword [esp + 0x60], 0
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x5c]
je 0x54ad26
mov edi, dword [esp + 0x40]
test edx, edx
je 0x54acfa
mov esi, dword [esp + 0x30]
cmp dword [edi + 0x3c], esi
mov esi, dword [esp + 0x6c]
jne 0x54ad26
cmp dword [esp + 0x30], 0
jne 0x54acfa
push 0x65b4fc
push edx
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
pop ecx
pop ecx
test eax, eax
jne 0x54ad1a
cmp dword [ebx + 0xc], 0
je 0x54ade4
push dword [ebx + 0xc]
push dword [esp + 0x64]
call fcn.005781b4
pop ecx
pop ecx
test eax, eax
je 0x54ae18
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x5c]
inc ecx
add ebx, 0x48
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], ebx
cmp ecx, dword [eax]
jl 0x54ab74
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x54ad66
mov eax, dword [ebx + 0x2c]
mov dword [esi + 0x1c], eax
mov eax, dword [ebx + 0x10]
mov dword [esi + 0x2c], eax
test byte [ebx + 0x24], 0x48
je 0x54ad5f
or dword [esi + 4], 0x200000
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x30], eax
cmp dword [esp + 0x14], 0
jne 0x54b18d
test edx, edx
jne 0x54b0be
mov ecx, dword [ebp + 0x84]
xor eax, eax
mov ebx, eax
test ecx, ecx
je 0x54afdf
mov al, byte [ebp + 0x9e]
mov byte [esp + 0x13], al
cmp byte [ebp + 0x9f], bl
je 0x54af8d
test dword [edi + 0x18], 0x400
je 0x54afdf
cmp dword [esp + 0x60], ebx
je 0x54adc9
push dword [ecx]
push dword [esp + 0x64]
call fcn.005781b4
pop ecx
pop ecx
test eax, eax
jne 0x54afdf
xor eax, eax
cmp byte [esp + 0x13], 0x80
setne al
jmp 0x54afd6
cmp dword [esp + 0x60], 0
je 0x54ae36
jmp 0x54acd1
push dword [edi]
push dword [esp + 0x64]
call fcn.005781b4
pop ecx
pop ecx
test eax, eax
je 0x54ae18
cmp dword [edi + 0x14], 1
jne 0x54ad1a
push dword [esp + 0x30]
push edi
push dword [esp + 0x68]
call fcn.0054617d
add esp, 0xc
test eax, eax
je 0x54ad1a
cmp byte [ebp + 0xdc], 2
jb 0x54ae36
xor ecx, ecx
cmp dword [ebx + 0xc], ecx
je 0x54ae36
lea eax, [esi + 0x2c]
push eax
push ecx
push ebp
call fcn.00573f26
add esp, 0xc
push dword [esp + 0x64]
call fcn.005781e7
mov edi, dword [edi + 4]
pop ecx
mov cl, al
xor eax, eax
mov ebx, eax
mov byte [esp + 0x13], cl
mov eax, dword [esp + 0x40]
movsx eax, word [eax + 0x22]
mov dword [esp + 0x4c], eax
test eax, eax
jle 0x54aebf
cmp byte [edi + 0xa], cl
jne 0x54aeb7
push dword [esp + 0x64]
push dword [edi]
call fcn.005781b4
pop ecx
pop ecx
test eax, eax
jne 0x54aeaf
cmp dword [esp + 0x14], eax
jle 0x54af4f
mov eax, dword [esp + 0x1c]
test dword [eax + 0x28], 0x400
je 0x54af35
push dword [esp + 0x64]
push dword [eax + 0x30]
call fcn.0056a3bf
pop ecx
pop ecx
test eax, eax
js 0x54af35
mov eax, dword [esp + 0x1c]
mov al, byte [eax + 0x24]
test al, 0x10
jne 0x54aef8
mov cl, byte [esp + 0x13]
mov eax, dword [esp + 0x4c]
inc ebx
add edi, 0x10
cmp ebx, eax
jl 0x54ae5d
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x1c]
cmp dword [esp + 0x14], 0
mov ebx, dword [esp + 0x1c]
jne 0x54ad1a
test dword [edi + 0x1c], 0x200
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
jne 0x54ad22
inc dword [esp + 0x34]
mov dword [esp + 0x18], edx
jmp 0x54ad22
test al, 8
jne 0x54af1c
mov eax, dword [esp + 0x24]
xor edi, edi
mov dword [esp + 0x14], edi
test eax, eax
je 0x54af16
push eax
push dword [esp + 0x24]
call fcn.005408da
pop ecx
pop ecx
mov dword [esp + 0x24], edi
jmp 0x54af4f
movzx eax, word [esi + 0x20]
push eax
push dword [esp + 0x1c]
lea eax, [esp + 0x2c]
push eax
push ebp
call fcn.00541041
add esp, 0x10
jmp 0x54af4f
mov eax, dword [esp + 0x24]
test eax, eax
je 0x54af49
push eax
push dword [esp + 0x24]
call fcn.005408da
pop ecx
pop ecx
xor eax, eax
mov dword [esp + 0x24], eax
mov edi, dword [esp + 0x40]
inc dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push 0xffffffffffffffff
movsx eax, word [edi + 0x20]
cmp ebx, eax
movzx ecx, bx
pop eax
cmove ecx, eax
mov dword [esp + 0x18], edx
mov word [esi + 0x20], cx
test dword [edx + 0x28], 0x2000
je 0x54aec7
push ebx
push edx
call fcn.0057738a
pop ecx
pop ecx
jmp 0x54aec7
cmp al, 0x80
je 0x54afbc
cmp dword [esp + 0x60], ebx
je 0x54afb8
push dword [esp + 0x60]
push 0x65b500
call fcn.005781b4
pop ecx
pop ecx
test eax, eax
jne 0x54afb4
mov dword [esi + 0x1c], 1
jmp 0x54afd9
mov al, byte [esp + 0x13]
cmp al, 0x7f
je 0x54afdf
cmp dword [esp + 0x60], ebx
je 0x54afdf
push dword [esp + 0x60]
push 0x65b504
call fcn.005781b4
pop ecx
pop ecx
test eax, eax
jne 0x54afdf
mov dword [esi + 0x1c], eax
mov ebx, dword [ebp + 0x84]
test dword [edi + 0x18], 0x200
je 0x54b017
cmp dword [esp + 0x60], 0
je 0x54b017
mov edi, dword [edi + 8]
test edi, edi
je 0x54b017
push dword [esp + 0x60]
push str.excluded
call fcn.005781b4
pop ecx
pop ecx
test eax, eax
jne 0x54b017
mov eax, dword [edi + 0x20]
mov ebx, dword [eax + 0x18]
mov dword [esi + 0x1c], 2
test ebx, ebx
je 0x54b0ba
push dword [esp + 0x64]
call fcn.005781e7
inc dword [esp + 0x38]
mov dl, al
mov eax, dword [ebx + 0x3c]
mov dword [esp + 0x34], eax
xor eax, eax
pop ecx
movsx ecx, word [ebx + 0x22]
mov edi, eax
mov eax, dword [ebx + 4]
mov byte [esp + 0x13], dl
mov dword [esp + 0x4c], eax
test ecx, ecx
jle 0x54b089
cmp byte [eax + 0xa], dl
jne 0x54b06f
push dword [esp + 0x64]
push dword [eax]
call fcn.005781b4
pop ecx
pop ecx
test eax, eax
je 0x54b07d
mov eax, dword [esp + 0x4c]
movsx ecx, word [ebx + 0x22]
mov dl, byte [esp + 0x13]
inc edi
add eax, 0x10
mov dword [esp + 0x4c], eax
cmp edi, ecx
jl 0x54b04d
jmp 0x54b089
movsx eax, word [ebx + 0x20]
cmp edi, eax
push 0xffffffffffffffff
pop eax
cmove edi, eax
movzx eax, word [ebx + 0x22]
cwde
cmp edi, eax
jl 0x54b0ad
push dword [esp + 0x64]
call fcn.0056bd8b
pop ecx
test eax, eax
je 0x54b0ad
test dword [ebx + 0x1c], 0x200
push 0xffffffffffffffff
pop eax
cmove edi, eax
movzx eax, word [ebx + 0x22]
cwde
cmp edi, eax
jl 0x54b19f
mov ebx, dword [esp + 0x18]
cmp dword [esp + 0x34], 1
mov edi, dword [esp + 0x68]
jne 0x54b0fe
test ebx, ebx
je 0x54b0fe
test byte [edi + 0x18], 0x28
jne 0x54b0fe
push dword [esp + 0x64]
call fcn.0056bd8b
pop ecx
test eax, eax
je 0x54b0fe
mov eax, dword [ebx + 0x10]
test dword [eax + 0x1c], 0x200
je 0x54b28a
test dword [ebx + 0x28], 0x2000
jne 0x54b28a
test byte [edi + 0x18], 0x80
je 0x54b16b
xor ecx, ecx
cmp dword [esp + 0x60], ecx
jne 0x54b16d
mov eax, dword [edi + 8]
mov ebx, ecx
mov edx, dword [eax]
mov dword [esp + 0x50], edx
test edx, edx
jle 0x54b16d
lea ecx, [eax + 0x14]
mov dword [esp + 0x4c], ecx
test byte [ecx], 3
mov edi, dword [ecx - 8]
jne 0x54b15b
test edi, edi
jne 0x54b138
mov eax, dword [esp + 0x64]
neg eax
sbb eax, eax
jmp 0x54b153
cmp dword [esp + 0x64], 0
je 0x54b15b
push dword [esp + 0x64]
push edi
call fcn.005781b4
mov edx, dword [esp + 0x58]
pop ecx
pop ecx
mov ecx, dword [esp + 0x4c]
test eax, eax
je 0x54b2a6
inc ebx
add ecx, 0x14
mov dword [esp + 0x4c], ecx
cmp ebx, edx
jl 0x54b122
mov edi, dword [esp + 0x68]
xor ecx, ecx
mov edi, dword [edi + 0xc]
inc dword [esp + 0x48]
mov dword [esp + 0x68], edi
test edi, edi
je 0x54b351
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
jmp 0x54ab50
mov edi, dword [esp + 0x14]
cmp edi, 1
je 0x54b501
jmp 0x54b3fb
mov edx, dword [esi + 0x1c]
xor eax, eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], eax
mov dword [esp + 0x5c], edx
movzx ecx, di
cmp edx, 2
jne 0x54b201
mov eax, ecx
cmp byte [ebp + 0xdc], dl
jb 0x54b1de
mov word [esi + 0x20], ax
mov dword [esi + 0x2c], ebx
mov dword [esp + 0x38], 0xa7
mov edi, dword [esp + 0x14]
jmp 0x54b501
push eax
push ebx
call fcn.005786ff
pop ecx
pop ecx
movsx ecx, ax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x38], 0xb0
mov eax, dword [eax + 8]
add ecx, dword [eax + 0x24]
mov dword [esi + 0x1c], ecx
jmp 0x54b1d5
mov dword [esi + 0x2c], ebx
mov al, byte [ebp + 0x9f]
mov word [esi + 0x20], cx
test al, al
je 0x54b245
push ecx
push ebx
mov dword [esp + 0x40], 0xb0
mov byte [esi + 2], 0xa7
call fcn.005786ff
pop ecx
pop ecx
movsx ecx, ax
movsx eax, word [ebx + 0x22]
inc eax
imul eax, dword [esp + 0x5c]
add ecx, eax
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 8]
inc eax
add eax, ecx
mov dword [esi + 0x1c], eax
jmp 0x54b1d5
mov dword [esp + 0x38], 0x4d
test edi, edi
jns 0x54b25a
mov byte [esi + 1], 0x44
jmp 0x54b1d5
xor eax, eax
mov ecx, edi
inc eax
shl eax, cl
push 0xffffffffffffffff
pop ecx
test edx, edx
jne 0x54b279
cmp edi, 0x20
cmovge eax, ecx
or dword [ebp + 0x94], eax
jmp 0x54b1d5
cmp edi, 0x20
cmovge eax, ecx
or dword [ebp + 0x98], eax
jmp 0x54b1d5
xor edi, edi
inc edi
test dword [ebx + 0x28], 0x2000
jne 0x54b29d
or eax, 0xffffffff
mov word [esi + 0x20], ax
mov byte [esi + 1], 0x44
jmp 0x54b501
mov ecx, dword [esp + 0x68]
mov ebp, dword [esp + 0x68]
imul eax, ebx, 0x14
mov edx, dword [ecx + 8]
test byte [ebp + 0x18], 1
mov ebp, dword [esp + 0x58]
mov ecx, dword [eax + edx + 8]
jne 0x54b2e2
test byte [ecx + 4], 0x10
je 0x54b2e2
push edi
push str.misuse_of_aliased_aggregate__s
push ebp
call fcn.00561f37
add esp, 0xc
push 2
pop eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret
test dword [ecx + 4], 0x8000
je 0x54b306
mov eax, dword [esp + 0x68]
test dword [eax + 0x18], 0x4000
je 0x54b2fe
cmp eax, dword [esp + 0x44]
je 0x54b306
push edi
push str.misuse_of_aliased_window_function__s
jmp 0x54b2ce
push ecx
call fcn.00565b08
pop ecx
cmp eax, 1
je 0x54b321
push str.row_value_misused
push ebp
call fcn.00561f37
pop ecx
pop ecx
jmp 0x54b2d7
mov eax, dword [esp + 0x48]
push eax
push esi
push ebx
push edx
push ebp
call fcn.0055417c
add esp, 0x14
cmp byte [ebp + 0xdc], 2
jb 0x54b573
push esi
xor eax, eax
push eax
push ebp
call fcn.00573f26
add esp, 0xc
jmp 0x54b573
cmp dword [esp + 0x60], 0
jne 0x54b3f3
test byte [esi + 4], 0x80
je 0x54b3e8
mov ebx, dword [esp + 0x20]
cmp byte [ebx + 0xb1], 0
jne 0x54b3bc
mov eax, dword [esp + 0x44]
test dword [eax + 0x18], 0x10000
je 0x54b3b0
push ebx
call fcn.0058bc82
pop ecx
xor ecx, ecx
test eax, eax
je 0x54b399
mov eax, dword [ebx + 0x20]
and eax, 0x40000000
or eax, ecx
jne 0x54b3bc
mov eax, dword [ebx + 0x20]
and eax, 0x20000000
or eax, ecx
je 0x54b3aa
xor eax, eax
inc eax
jmp 0x54b3ac
mov eax, ecx
test eax, eax
jmp 0x54b3ba
mov eax, dword [ebx + 0x20]
and eax, 0x40000000
or eax, ecx
je 0x54b3e8
push dword [esp + 0x64]
push str.double_quoted_string_literal:___w_
push 0x1c
call fcn.0052882c
push 8
xor eax, eax
mov byte [esi], 0x75
push eax
lea ecx, [esi + 0x2c]
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0x18
xor eax, eax
inc eax
jmp 0x54b2da
push esi
call fcn.00564a48
pop ecx
test eax, eax
jne 0x54b3e0
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x54b487
lea eax, [edi - 1]
cmp dword [ecx], eax
jne 0x54b47b
mov eax, dword [esi + 4]
test eax, 0x800000
je 0x54b422
and eax, 0xff7fffff
mov dword [esi + 4], eax
jmp 0x54b451
cmp dword [esi + 0xc], 0
mov edi, dword [esp + 0x20]
je 0x54b437
push dword [esi + 0xc]
push edi
call fcn.0056485a
pop ecx
pop ecx
xor eax, eax
mov dword [esi + 0xc], eax
cmp dword [esi + 0x10], eax
je 0x54b44e
push dword [esi + 0x10]
push edi
call fcn.0056485a
pop ecx
pop ecx
xor eax, eax
mov dword [esi + 0x10], eax
movzx eax, word [esi + 0x20]
push eax
push ebx
lea eax, [esp + 0x2c]
push eax
push ebp
call fcn.00541041
mov eax, dword [esp + 0x34]
add esp, 0x10
mov byte [esi], 0xac
mov dword [esi + 8], str.coalesce
mov dword [esi + 0x14], eax
jmp 0x54b573
push ecx
push dword [esp + 0x24]
call fcn.005408da
pop ecx
pop ecx
push dword [esp + 0x64]
test edi, edi
mov ecx, str.ambiguous_column_name
mov eax, str.no_such_column
cmovne eax, ecx
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x54b4b8
push dword [esp + 0x64]
push ecx
push eax
push str._s:__s._s._s
push ebp
call fcn.00561f37
add esp, 0x18
jmp 0x54b4e3
cmp dword [esp + 0x64], 0
je 0x54b4d4
push dword [esp + 0x64]
push eax
push str._s:__s._s
push ebp
call fcn.00561f37
add esp, 0x14
jmp 0x54b4e3
push eax
push str._s:__s
push ebp
call fcn.00561f37
add esp, 0x10
push esi
push dword [ebp]
call fcn.00573839
mov eax, dword [esp + 0x4c]
pop ecx
mov byte [ebp + 0x11], 1
pop ecx
inc dword [eax + 0x14]
mov dword [esp + 0x38], 0x79
test dword [esi + 4], 0x810000
jne 0x54b542
cmp dword [esi + 0xc], 0
mov ebx, dword [esp + 0x20]
je 0x54b51f
push dword [esi + 0xc]
push ebx
call fcn.0056485a
pop ecx
pop ecx
xor eax, eax
mov dword [esi + 0xc], eax
cmp dword [esi + 0x10], eax
je 0x54b536
push dword [esi + 0x10]
push ebx
call fcn.0056485a
pop ecx
pop ecx
xor eax, eax
or dword [esi + 4], 0x800000
mov dword [esi + 0x10], eax
jmp 0x54b544
xor eax, eax
cmp word [esi + 0x20], ax
jl 0x54b564
cmp edi, 1
jne 0x54b564
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x54b564
push esi
call fcn.0056429d
or dword [ebx + 0x38], eax
or dword [ebx + 0x3c], edx
pop ecx
mov eax, dword [esp + 0x38]
mov byte [esi], al
cmp edi, 1
jne 0x54b2d7
mov eax, dword [ebp]
xor ecx, ecx
cmp dword [eax + 0x16c], ecx
je 0x54b59f
mov al, byte [esi]
cmp al, 0xa7
je 0x54b58a
cmp al, 0x4d
jne 0x54b59f
mov eax, dword [esp + 0x68]
push dword [eax + 4]
push dword [esp + 0x34]
push esi
push ebp
call fcn.00559e05
add esp, 0x10
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x68]
jmp 0x54b5ac
mov ecx, dword [ecx + 0xc]
inc dword [ecx + 0x10]
cmp ecx, eax
jne 0x54b5a9
jmp 0x54b3e0