Function at 0x10002460
Capabilities:
Access peb ldr_data
Inspect section memory permissions
Parse pe header
Resolve function by hash
Resolve function by parsing pe exports

Disassembly:
push ebx
push edi
push esi
sub esp, 0x90
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov word [esp + 0x52], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x8c], 0
call fcn.10002458
mov dword [esp + 0x24], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x10], 0x213ff040
mov eax, dword [esp + 0x10]
mov ecx, eax
sub ecx, 0x80265f37
je 0x10003a7e
jmp 0x100024ef
mov ecx, eax
sub ecx, 0x83445c61
je 0x100038a2
jmp 0x100024ff
mov ecx, eax
sub ecx, 0x872876a5
je 0x10004103
jmp 0x1000250f
mov ecx, eax
sub ecx, 0x881d9af5
je 0x10003f7b
jmp 0x1000251f
mov ecx, eax
sub ecx, 0x8d6144c3
je 0x10003ae4
jmp 0x1000252f
mov ecx, eax
sub ecx, 0x8e50a343
je 0x10004268
jmp 0x1000253f
mov ecx, eax
sub ecx, 0x901131a7
je 0x10002d4b
jmp 0x1000254f
mov ecx, eax
sub ecx, 0x9585df60
je 0x10003d83
jmp 0x1000255f
mov ecx, eax
sub ecx, 0x962af041
je 0x100032e2
jmp 0x1000256f
mov ecx, eax
sub ecx, 0x97cdc857
je 0x1000327c
jmp 0x1000257f
mov ecx, eax
sub ecx, 0x97de8ff5
je 0x10004253
jmp 0x1000258f
mov ecx, eax
sub ecx, 0x9931271c
je 0x1000307a
jmp 0x1000259f
mov ecx, eax
sub ecx, 0x9a27b245
je 0x100042b0
jmp 0x100025af
mov ecx, eax
sub ecx, 0x9cfb4bc4
je 0x100037a4
jmp 0x100025bf
mov ecx, eax
sub ecx, 0xa07011cc
je 0x100036fc
jmp 0x100025cf
mov ecx, eax
sub ecx, 0xa13c41fd
je 0x100041c0
jmp 0x100025df
mov ecx, eax
sub ecx, 0xa54c1e5a
je 0x1000432d
jmp 0x100025ef
mov ecx, eax
sub ecx, 0xaa685fdb
je 0x10003885
jmp 0x100025ff
mov ecx, eax
sub ecx, 0xaaed3812
je 0x10003689
jmp 0x1000260f
mov ecx, eax
sub ecx, 0xac4684a3
je 0x10002cc0
jmp 0x1000261f
mov ecx, eax
sub ecx, 0xac500364
je 0x10004062
jmp 0x1000262f
mov ecx, eax
sub ecx, 0xad7537ea
je 0x10002e27
jmp 0x1000263f
mov ecx, eax
sub ecx, 0xaf7ce577
je 0x100033a0
jmp 0x1000264f
mov ecx, eax
sub ecx, 0xb006fb55
je 0x10003bc5
jmp 0x1000265f
mov ecx, eax
sub ecx, 0xb009cdc5
je 0x1000376b
jmp 0x1000266f
mov ecx, eax
sub ecx, 0xb30007b5
je 0x10003c2b
jmp 0x1000267f
mov ecx, eax
sub ecx, 0xb93239e7
je 0x10003238
jmp 0x1000268f
mov ecx, eax
sub ecx, 0xb9f4614e
je 0x1000372c
jmp 0x1000269f
mov ecx, eax
sub ecx, 0xbc7775fe
je 0x100037fa
jmp 0x100026af
mov ecx, eax
sub ecx, 0xbcfe903c
je 0x10003ed1
jmp 0x100026bf
mov ecx, eax
sub ecx, 0xbd11e2c4
je 0x10003138
jmp 0x100026cf
mov ecx, eax
sub ecx, 0xbff02996
je 0x1000305c
jmp 0x100026df
mov ecx, eax
sub ecx, 0xc0f1f528
je 0x10003159
jmp 0x100026ef
mov ecx, eax
sub ecx, 0xc29189ea
je 0x10003739
jmp 0x100026ff
mov ecx, eax
sub ecx, 0xc49b117c
je 0x10004222
jmp 0x1000270f
mov ecx, eax
sub ecx, 0xc687812d
je 0x1000311a
jmp 0x1000271f
mov ecx, eax
sub ecx, 0xc9c8890c
je 0x10003dff
jmp 0x1000272f
mov ecx, eax
sub ecx, 0xcbc72f6c
je 0x10003cb6
jmp 0x1000273f
mov ecx, eax
sub ecx, 0xcfedf051
je 0x10003a55
jmp 0x1000274f
mov ecx, eax
sub ecx, 0xd29848c1
je 0x100036e7
jmp 0x1000275f
mov ecx, eax
sub ecx, 0xd69942d0
je 0x10003f66
jmp 0x1000276f
mov ecx, eax
sub ecx, 0xd9bd1e6f
je 0x100040a8
jmp 0x1000277f
mov ecx, eax
sub ecx, 0xdabb8be4
je 0x10002d58
jmp 0x1000278f
mov ecx, eax
sub ecx, 0xdbe7de8d
je 0x10003fc1
jmp 0x1000279f
mov ecx, eax
sub ecx, 0xde44fffe
je 0x100031df
jmp 0x100027af
mov ecx, eax
sub ecx, 0xdfa297c3
je 0x10002db4
jmp 0x100027bf
mov ecx, eax
sub ecx, 0xe1f0c4a9
je 0x10002ce6
jmp 0x100027cf
mov ecx, eax
sub ecx, 0xe8e30d5e
je 0x10003e19
jmp 0x100027df
mov ecx, eax
sub ecx, 0xebaba7af
je 0x10003382
jmp 0x100027ef
mov ecx, eax
sub ecx, 0xec4db078
je 0x100031a0
jmp 0x100027ff
mov ecx, eax
sub ecx, 0xec4e5bc2
je 0x1000404d
jmp 0x1000280f
mov ecx, eax
sub ecx, 0xf3499f42
je 0x10003e26
jmp 0x1000281f
mov ecx, eax
sub ecx, 0xf3f6a111
je 0x1000303e
jmp 0x1000282f
mov ecx, eax
sub ecx, 0xf751d6f7
je 0x10003557
jmp 0x1000283f
mov ecx, eax
sub ecx, 0xf84e5099
je 0x10002fad
jmp 0x1000284f
mov ecx, eax
sub ecx, 0xf887d43e
je 0x100040bd
jmp 0x1000285f
mov ecx, eax
sub ecx, 0xf8d36d7e
je 0x10002dcf
jmp 0x1000286f
mov ecx, eax
sub ecx, 0xf98ac589
je 0x100031be
jmp 0x1000287f
mov ecx, eax
sub ecx, 0xfa567c48
je 0x10003fd6
jmp 0x1000288f
mov ecx, eax
sub ecx, 0xfe5c3317
je 0x100030f1
jmp 0x1000289f
mov ecx, eax
sub ecx, 0xffce40f7
je 0x10002ef7
jmp 0x100028af
mov ecx, eax
sub ecx, 0x37ca0d0
je 0x10002dfc
jmp 0x100028bf
mov ecx, eax
sub ecx, 0xf766157
je 0x10002f8f
jmp 0x100028cf
mov ecx, eax
sub ecx, 0x1235a56d
je 0x10003e0c
jmp 0x100028df
mov ecx, eax
sub ecx, 0x1335c36c
je 0x100041ab
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x30], eax
cmp dword [esp + 0x30], 0x40
mov eax, 0xe1f0c4a9
mov ecx, 0xdabb8be4
cmovae ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
cmp dword [esp + 0x30], 0x400
mov eax, 0x53b84c73
mov ecx, 0xdabb8be4
cmovb ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
mov dword [esp + 0x10], 0xdabb8be4
jmp 0x1000436a
mov dword [esp + 0x10], 0x3cadcbfd
jmp 0x1000436a
cmp dword [esp + 0x18], 0
mov eax, 0xf8d36d7e
mov ecx, 0x59624213
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
mov ax, word [eax + 0x24]
mov word [esp + 0x2a], ax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], 0x37ca0d0
jmp 0x1000436a
mov eax, dword [esp + 0x1c]
rol eax, 0x13
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
cmp eax, 0x61
mov eax, 0xad7537ea
mov ecx, 0x67f822a1
cmovge ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
add eax, 0x983b3e1e
sub eax, 0x20
sub eax, 0x983b3e1e
mov ecx, dword [esp + 0x1c]
add ecx, 0xbd134fa4
add ecx, eax
sub ecx, 0xbd134fa4
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], 0x1e93b75f
jmp 0x1000436a
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x3c]
sub eax, 0xd094fd48
add eax, ecx
add eax, 0xd094fd48
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
add eax, 0x18
add eax, 0x60
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
mov ecx, dword [ecx]
sub eax, 0xf0cb0a27
add eax, ecx
add eax, 0xf0cb0a27
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx + 0x20]
add eax, 0xe5ca1522
add eax, ecx
sub eax, 0xe5ca1522
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx + 0x24]
sub eax, 0xa77c4b2
add eax, ecx
add eax, 0xa77c4b2
mov dword [esp + 0x4c], eax
mov word [esp + 0x2a], 4
mov dword [esp + 0x10], 0xf766157
jmp 0x1000436a
movzx eax, word [esp + 0x2a]
cmp eax, 0
mov eax, 0xf84e5099
mov ecx, 0x34678458
cmovg ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
xor eax, eax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
mov edx, dword [edx]
xor esi, esi
sub esi, ecx
xor ecx, ecx
sub ecx, edx
add esi, ecx
xor ecx, ecx
sub ecx, esi
mov edx, 0x67f643d2
mov esi, edx
sub esi, 0xacca57c0
je 0x10003018
jmp 0x10002fd8
mov esi, edx
sub esi, 0x67f643d2
je 0x10002fe4
jmp 0x10003016
rol eax, 0x13
movsx edx, byte [ecx]
add eax, 0xb63ee92f
add eax, edx
sub eax, 0xb63ee92f
mov dword [esp + 0x78], eax
mov esi, ecx
add esi, 1
cmp byte [ecx + 1], 0
mov eax, 0xacca57c0
mov edx, 0x67f643d2
cmove edx, eax
mov eax, dword [esp + 0x78]
mov ecx, esi
jmp 0x10002fcc
mov eax, dword [esp + 0x78]
mov dword [esp + 0x44], eax
cmp dword [esp + 0x44], 0xec0e4e8e
mov eax, 0x37d988c2
mov ecx, 0xf3f6a111
cmove ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
cmp dword [esp + 0x44], 0x7c0dfcaa
mov eax, 0x37d988c2
mov ecx, 0xbff02996
cmove ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
cmp dword [esp + 0x44], 0x91afca54
mov eax, 0x37d988c2
mov ecx, 0x9931271c
cmove ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
cmp dword [esp + 0x44], 0x7946c61b
mov eax, 0x37d988c2
mov ecx, 0x97cdc857
cmove ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
xor eax, eax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
xor esi, esi
sub esi, ecx
xor ecx, ecx
sub ecx, edx
add esi, ecx
sub eax, esi
mov dword [esp + 0x64], eax
mov dword [esp + 0x10], 0x47ae2de2
jmp 0x1000436a
cmp dword [esp + 0x44], 0x7c0dfcaa
mov eax, 0xbd11e2c4
mov ecx, 0xc0f1f528
cmove ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
xor eax, eax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
sub eax, edx
sub ecx, eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x10], 0x6630ee02
jmp 0x1000436a
cmp dword [esp + 0x44], 0x91afca54
mov eax, 0x345a390e
mov ecx, 0xec4db078
cmove ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
cmp dword [esp + 0x44], 0x7946c61b
mov eax, 0xf98ac589
mov ecx, 0xde44fffe
cmove ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
xor eax, eax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
sub eax, edx
sub ecx, eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0x10], 0x5cba5a53
jmp 0x1000436a
cmp dword [esp + 0x44], 0x300f2f0b
mov eax, 0x393f7cc0
mov ecx, 0x227ca2b5
cmove ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
mov dword [esp + 0x10], 0x6630ee02
jmp 0x1000436a
xor eax, eax
mov ecx, dword [esp + 0x40]
xor edx, edx
sub edx, ecx
xor ecx, ecx
sub ecx, 4
add edx, ecx
xor ecx, ecx
sub ecx, edx
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x4c]
xor edx, edx
sub edx, ecx
xor ecx, ecx
sub ecx, 2
add edx, ecx
sub eax, edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x10], 0xf766157
jmp 0x1000436a
xor eax, eax
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
mov edx, dword [edx + 0x3c]
add ecx, 0x623c47ed
add ecx, edx
sub ecx, 0x623c47ed
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x38]
add ecx, 0x18
add ecx, 0x60
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
mov edx, dword [edx]
add ecx, 0x277c5d46
add ecx, edx
sub ecx, 0x277c5d46
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
mov edx, dword [edx + 0x20]
xor esi, esi
sub esi, ecx
xor ecx, ecx
sub ecx, edx
add esi, ecx
xor ecx, ecx
sub ecx, esi
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
mov edx, dword [edx + 0x24]
xor esi, esi
sub esi, ecx
xor ecx, ecx
sub ecx, edx
add esi, ecx
sub eax, esi
mov dword [esp + 0x4c], eax
mov word [esp + 0x2a], 1
mov dword [esp + 0x10], 0xebaba7af
jmp 0x1000436a
movzx eax, word [esp + 0x2a]
cmp eax, 0
mov eax, 0xaf7ce577
mov ecx, 0x18cdbe2b
cmovg ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
xor ecx, ecx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
mov edx, dword [edx]
add eax, 0x80cd6bd8
add eax, edx
sub eax, 0x80cd6bd8
mov edx, 0x67f643d2
mov esi, edx
sub esi, 0xacca57c0
je 0x1000340b
jmp 0x100033c9
mov esi, edx
sub esi, 0x67f643d2
je 0x100033d5
jmp 0x10003409
xor edx, edx
rol ecx, 0x13
movsx esi, byte [eax]
xor edi, edi
sub edi, ecx
xor ecx, ecx
sub ecx, esi
add edi, ecx
sub edx, edi
mov dword [esp + 0x7c], edx
mov esi, eax
add esi, 1
cmp byte [eax + 1], 0
mov eax, 0xacca57c0
mov edx, 0x67f643d2
cmove edx, eax
mov ecx, dword [esp + 0x7c]
mov eax, esi
jmp 0x100033bd
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x44], eax
cmp dword [esp + 0x44], 0x534c0ab8
mov eax, 0x53f44e51
mov ecx, 0x740da745
cmove ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
cmp dword [esp + 0x5c], 0
mov eax, 0x7ed482ff
mov ecx, 0x1b86e8db
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
xor eax, eax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 0xc]
xor esi, esi
sub esi, ecx
xor ecx, ecx
sub ecx, edx
add esi, ecx
sub eax, esi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x14]
add eax, 0x8d5a9e00
add eax, ecx
sub eax, 0x8d5a9e00
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x20], eax
cmp dword [esp + 0x6c], 0
mov eax, 0xd29848c1
mov ecx, 0xa07011cc
cmove ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x10], 0xa07011cc
jmp 0x1000436a
cmp dword [esp + 0x68], 0
mov eax, 0x7e8e9b71
mov ecx, 0xb9f4614e
cmove ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
mov dword [esp + 0x10], 0xc29189ea
jmp 0x1000436a
mov eax, dword [esp + 0x20]
mov ecx, eax
sub ecx, 0xeeb09749
add ecx, 0xffffffff
add ecx, 0xeeb09749
mov dword [esp + 0x20], ecx
cmp eax, 0
mov eax, 0xb009cdc5
mov ecx, 0x9cfb4bc4
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
xor eax, eax
mov ecx, dword [esp + 0x1c]
xor edx, edx
sub edx, 1
mov esi, ecx
sub esi, edx
mov dword [esp + 0x1c], esi
mov cl, byte [ecx]
mov edx, dword [esp + 0x2c]
xor esi, esi
sub esi, edx
xor edi, edi
sub edi, 1
add esi, edi
sub eax, esi
mov dword [esp + 0x2c], eax
mov byte [edx], cl
mov dword [esp + 0x10], 0xc29189ea
jmp 0x1000436a
xor eax, eax
mov ecx, dword [esp + 0x18]
sub eax, 0x28
sub ecx, eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], 0x34b5fc98
jmp 0x1000436a
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0xc], 0
mov eax, 0x55a4dcfe
mov ecx, 0x7e1e4f4f
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
mov eax, dword [esp + 0x18]
cmp dword [eax], 0
mov eax, 0x83445c61
mov ecx, 0x80265f37
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
cmp dword [esp + 0x20], 0
mov eax, 0x5ab028c5
mov ecx, 0x1685ef14
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
xor eax, eax
mov ecx, dword [esp + 0x20]
sub eax, 4
sub ecx, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], 0x59951189
jmp 0x1000436a
xor eax, eax
mov ecx, dword [esp + 0x1c]
sub eax, 0x14
sub ecx, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], 0xbc7775fe
jmp 0x1000436a
xor eax, eax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
mov edx, dword [edx]
sub eax, edx
sub ecx, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], 0x1fb819ee
jmp 0x1000436a
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov dx, word [edx]
xor dx, 0xffff
mov si, 0xffff
mov di, 0xffff
xor di, 0xfff
xor si, 0xba1f
or dx, di
or si, 0xba1f
xor dx, 0xffff
and dx, si
movzx edx, dx
sub ecx, 0xa6fddd47
add ecx, edx
mov edx, dword [ecx - 0x590222b9]
add edx, 0x53b5af4c
add edx, eax
sub edx, 0x53b5af4c
mov dword [ecx - 0x590222b9], edx
mov dword [esp + 0x10], 0xf3499f42
jmp 0x1000436a
mov eax, dword [esp + 0x20]
mov ax, word [eax]
shr ax, 0xc
movzx eax, ax
cmp eax, 3
mov eax, 0x44a516da
mov ecx, 0xcbc72f6c
cmove ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
mov eax, dword [esp + 0x20]
mov ax, word [eax]
shr ax, 0xc
movzx eax, ax
cmp eax, 1
mov eax, 0x36d3d99b
mov ecx, 0x684f4dc2
cmove ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
xor eax, eax
mov ecx, dword [esp + 0x24]
xor ecx, 0xffffffff
mov edx, 0xffffffff
mov esi, 0xffffffff
xor esi, 0xffff
xor edx, 0x5dab25b4
or ecx, esi
or edx, 0x5dab25b4
xor ecx, 0xffffffff
and ecx, edx
movzx ecx, cx
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
mov si, word [esi]
mov di, 0xffff
xor di, 0xfff
mov bx, si
xor bx, di
and bx, si
movzx esi, bx
xor edi, edi
sub edi, edx
xor edx, edx
sub edx, esi
add edi, edx
sub eax, edi
movzx edx, word [eax]
sub edx, 0x474f0b01
add edx, ecx
add edx, 0x474f0b01
mov word [eax], dx
mov dword [esp + 0x10], 0xc9c8890c
jmp 0x1000436a
mov dword [esp + 0x10], 0x1235a56d
jmp 0x1000436a
mov dword [esp + 0x10], 0xe8e30d5e
jmp 0x1000436a
mov dword [esp + 0x10], 0xf3499f42
jmp 0x1000436a
mov eax, dword [esp + 0x20]
add eax, 0xe78fe3bf
add eax, 2
sub eax, 0xe78fe3bf
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], 0x2ba2dd5d
jmp 0x1000436a
xor eax, eax
mov cx, word [esp + 0x52]
sub ax, 0xffff
mov dx, cx
sub dx, ax
mov word [esp + 0x52], dx
cmp cx, 0
mov eax, 0x4886c6d7
mov ecx, 0x9a27b245
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
mov dword [esp + 0x48], 8
mov dword [esp + 0x10], 0x881d9af5
jmp 0x1000436a
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x24]
xor eax, 0xffffffff
mov ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x40000000
xor ecx, 0xc4722249
or eax, edx
or ecx, 0xc4722249
xor eax, 0xffffffff
and eax, ecx
cmp eax, 0
mov eax, 0xdbe7de8d
mov ecx, 0xfa567c48
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
mov dword [esp + 0x48], 2
mov dword [esp + 0x10], 0xfa567c48
jmp 0x1000436a
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x24]
mov ecx, 0xffffffff
xor ecx, 0x80000000
mov edx, eax
xor edx, ecx
and edx, eax
cmp edx, 0
mov eax, 0x5e746b0b
mov ecx, 0xac500364
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
mov dword [esp + 0x48], 4
mov dword [esp + 0x10], 0xac500364
jmp 0x1000436a
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x24]
xor eax, 0xffffffff
mov ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x20000000
xor ecx, 0xed1a768b
or eax, edx
or ecx, 0xed1a768b
xor eax, 0xffffffff
and eax, ecx
cmp eax, 0
mov eax, 0xd9bd1e6f
mov ecx, 0xf887d43e
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
mov dword [esp + 0x48], 0x10
mov dword [esp + 0x10], 0xf887d43e
jmp 0x1000436a
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x24]
xor eax, 0xffffffff
mov ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x20000000
xor ecx, 0xef4271d4
or eax, edx
or ecx, 0xef4271d4
xor eax, 0xffffffff
and eax, ecx
cmp eax, 0
mov eax, 0x872876a5
mov ecx, 0x7dd54a73
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x24]
mov ecx, 0xffffffff
xor ecx, 0x80000000
mov edx, eax
xor edx, ecx
and edx, eax
cmp edx, 0
mov eax, 0x694ac526
mov ecx, 0x7dd54a73
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x24]
mov ecx, 0xffffffff
xor ecx, 0x20000000
mov edx, eax
xor edx, ecx
and edx, eax
cmp edx, 0
mov eax, 0x5e81b8bf
mov ecx, 0x8e50a343
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x24]
mov ecx, 0xffffffff
xor ecx, 0x40000000
mov edx, eax
xor edx, ecx
and edx, eax
cmp edx, 0
mov eax, 0x97de8ff5
mov ecx, 0x8e50a343
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
mov dword [esp + 0x48], 0x40
mov dword [esp + 0x10], 0x8e50a343
jmp 0x1000436a
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x80]
mov esi, dword [esp + 0x84]
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
lea ecx, [esp + 0x48]
mov dword [esp + 0xc], ecx
call eax
sub esp, 0x10
mov eax, dword [esp + 0x34]
add eax, 0x640
mov dword [esp + 0x34], eax
mov dword [esp + 0x10], 0xbcfe903c
jmp 0x1000436a
xor eax, eax
mov eax, 0xffffffff
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
call dword [esp + 0x54]
sub esp, 0xc
xor eax, eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp], ecx
mov dword [esp + 4], 1
mov dword [esp + 8], 0
call eax
sub esp, 0xc
xor eax, eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp], ecx
mov dword [esp + 4], 4
mov dword [esp + 8], 0
call eax
sub esp, 0xc
cmp dword [esp + 0x58], 0
mov eax, 0x6ab70654
mov ecx, 0xa54c1e5a
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1000436a
xor eax, eax
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x88]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 0x8000
call eax
sub esp, 0xc
mov dword [esp + 0x10], 0x6ab70654
jmp 0x1000436a
jmp 0x100024db